我对 Angular 和 Javascript 很陌生,所以也许这是一个愚蠢的问题......
我需要将信息从 Controller (route.id) 传递到 View ,以便由将被转换为其他指令的指令进行解释。抱歉,但我无法更好地解释。我已经做了代码简化:
index.html
<div ng-app="myapp" ng-ctrl="myctrl">
<adir aattr="{{param}}" >
</adir>
</div>
myapp.js:
angular.module("myapp",[])
.controller('myctrl',function(){
param="bye"
})
.directive('oldie', function() {
return{
restrict:"E",
template: function(elem,attr) {
return "<div >Hello "+ attr.battr +" </div>"
}
}
})
.directive('adir', function() {
return {
restrict:"E",
template: function(elem,attr){
return "<oldie battr={{" + attr.aattr + "}}></oldie>"
}
}
});
我需要的是将 param 的内容赋予要在指令中使用的属性。
我已经做了一个 jsfiddle 来玩: jsfiddle
提前致谢,
最佳答案
您的代码中有几个地方错误。
您使用了“ng-ctrl”而不是
ng-controller
。所以, Controller 根本不起作用。<div ng-app="myapp" ng-controller="myctrl">
您尚未在 Controller 中定义 $scope 变量。
.controller('myctrl',function($controller){
在第一个指令中,在模板中设置属性时不必使用 Angular 表达式
{{}}
。它可以是一个普通的字符串。return "<oldie battr=" + attr.aattr + "></oldie>"
Here是 fiddle 。
此方法的另一种替代方法是通过隔离范围内的绑定(bind)来访问属性。
请参阅 this 上的指令定义对象部分文章。
关于javascript - Angular,将参数从 View 传递到指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38318977/