带脚本的AngularJS指令
AngularJS directive with script
基本上,我有我的指令定义sample.js为:
app.directive('myDirective', function() {
return {
restrict: 'E',
scope: {
info: '='
},
templateUrl: 'link-to-sample.html'
};
});
在我的sample.html我得到(例如):
<script>
$(div).css('height', {{info}}+'px') //THIS DOESN'T WORK
</script>
<div></div>
在我的index.html中,我想通过info=''
标记传递一个数值,并在脚本中使用它,在sample.html文件中运行。
<my-directive info='100'></my-directive>
但是在<script></script>
标签中仅使用{{info}}
似乎不起作用。
如果你们能帮我,我会很感激的。
注:我知道,我可以写一个代码内部指令,使用compile
,或template:
,但我真的想保持在单独的.html文件。
强烈不鼓励在模板文件中嵌入脚本标签来处理指令中的DOM。它不能很好地配合Angular的DOM更新方式,而且它不能访问作用域和周围的指令。另外,在不允许使用内联脚本的CSP下,它会中断。
推荐的方法是使用link
函数并删除模板中的脚本标记。
app.directive('myDirective', function() {
return {
restrict: 'E',
scope: {
info: '='
},
templateUrl: 'link-to-sample.html',
link: function (element, $scope, attrs) {
element.find('div').css('height', $scope.info + 'px');
},
};
});
您仍然可以为模板HTML保留单独的sample.html
。你就是不讲道理。在我看来,这是更好的关注点分离。
<div></div>
相关文章:
- 一次显示一个隐藏指令-AngularJS
- 一次显示一个指令AngularJS
- 在同一页面上多次使用的自定义指令 (AngularJS) 中的验证
- 无法绑定到没有指令 + angularjs 标识符的控制器
- 值未传递给指令-AngularJS
- 测试依赖于另一个指令Angularjs的指令
- 根据指令angularjs 1.2分配控制器
- 有模板问题的指令.AngularJS
- 编译指令在指令 AngularJS 中
- 我可以将 templateUrl 传递给指令 - AngularJS
- 从子指令的父指令 [angularJS] 触发子指令中的函数
- 将服务注入指令 AngularJS 和数据绑定
- 在指令 AngularJS 中解析
- 从指令 AngularJS 给出高图表正确的参数
- 获取 JSON 数据并传递给指令 Angularjs
- 点击事件后的渲染模板指令 - AngularJs
- 如何从分页指令angularjs隐藏直接页面链接
- AngularJS-关闭tile并从ngRepeat指令AngularJS中的模型加载新视图
- 触发指令AngularJs的控制器作用域
- 将定义的对象传递给另一个自定义指令angularjs