从控制器到指令的单向对象

时间:2016-10-24 18:43:20

标签: angularjs

我想将对象从控制器传递到指令,但不是双向绑定

我尝试使用 JSON.stringify ,但它可以正常工作,但在HTML中显示整个数据。

有没有办法实现这个目标?

在我的控制器中:     $scope.obj= { selectedItems=[1,2,3]}; 在html中:     <my-dir pass-obj= "obj"><my-dir> 在指令中:     scope:{passObj='@'}

它给我字符串&#34; obj&#34;不是对象。

2 个答案:

答案 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