我想将对象从控制器传递到指令,但不是双向绑定。
我尝试使用 JSON.stringify ,但它可以正常工作,但在HTML中显示整个数据。
有没有办法实现这个目标?
在我的控制器中:
$scope.obj= { selectedItems=[1,2,3]};
在html中:
<my-dir pass-obj= "obj"><my-dir>
在指令中:
scope:{passObj='@'}
它给我字符串&#34; obj&#34;不是对象。
答案 0 :(得分:1)
在较早版本的AngularJS中,单向绑定是使用$watch
完成的。
app.directive("myDir", function() {
return {
scope: {},
link: function(scope, elem, attrs) {
//one-way binding
scope.$parent.$watch("attrs.passObj", function(newValue) {
scope.passObj = newValue;
});
}
};
});
以上示例相当于使用AngularJS 1.5进行单向绑定:
scope: { passObj: '<' }
答案 1 :(得分:0)
这应该有用..
控制器:
$scope.obj= { selectedItems=[1,2,3]};
html:
<my-dir passObj= "::obj"><my-dir>
之前有人问过,你可以在这里阅读更多内容; One-way binding in Angular directives