提前感谢您抽出时间来研究这个问题
我有服务器端生成的代码,用于呈现围绕预呈现内容的指令。
<serverside-demo color="blue">
<p><strong>Content from Server, wrapped in a directive.</strong></p>
<p>I want this color to show: <span ng-style="{color: color}">{{color}}</span></p>
<button ng-click="onClickButtonInDirective()">Click Me</button>
</serverside-demo>
这意味着 1.) 指令标签,2.) 指令标签内的内容,3.) ng-click 和 4.) 大括号语法都是由服务器生成的。
我希望AngularJs拾取生成的代码,重新编译模板并处理范围。
问题是我无法让它工作。我知道因为 ng-click 位于控制器块内,所以它不是由指令隔离范围拾取,而是由父控制器拾取。相反,我想要相反的......在 serversideDemo 链接中选择 onClickButtonInDirective 作用域函数
我创建了一个 jsfiddle 最好地解释了我的问题,它旨在清楚地展示单独加载模板的工作“传统”方式(有效)与服务器端方式进行比较。
https://jsfiddle.net/stevewbrown/beLccjd2/3/
做这个的最好方式是什么?
谢谢!
您的代码中有两个主要问题
1- 指令名称和 dom 元素不匹配,-
在 dom 元素中缺失
app.directive('serverSideDemo', function() {
用<server-side-demo color="blue">
代替<serverside-demo color="blue">
2-您需要server-side-demo
在链接函数中编译具有指令范围的dom的html代码
$compile(element.contents())(scope);
工作jsfiddle
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句