如何在angularjs中访问一个指令范围值到其他指令?

时间:2016-04-07 12:25:54

标签: javascript angularjs json

实际上我的要求是将一个指令范围转换为另一个指令,并且需要执行双向绑定。

每当ng-model发生变化时,我都需要更改JSON值。在下面的示例中,JSON具有带有属性的行集。这些属性名称我必须绑定与控件(文本框),如ng-model = CuId。因此,每当相应的属性值发生变化时,JSON都需要更新。

源代码:

var app = angular.module("myApp", []);

app.directive("main", function() {

});

app.directive("sub1", function() {
    return {
        restrict: 'E',
        replace: true,
        template : "<h1>sub1</h1>",
        link: function($scope, element, attrs) {
           $scope.soJSON={
                "entityinfo": {
                  "entity": "Customer29Jan16",
                  "tenantId": "292FEC76-5F1C-486F-85A5-09D88096F098",
                  "timeStamp": "2016-04-07T10:33:38.507Z"
                },
                "collections": {
                  "Customer29Jan16": {
                    "meta": {
                      "parentreference": "***",
                      "pkname": "***",
                      "fkname": "***"
                    },
                    "rowset": [
                      {
                        "CuId": "test",
                        "Name": "test",
                        "Quantity": "test"                       
                      }
                    ],
                    "rowfilter": []
                  }
                }
              }
        }
    };
});

app.directive("sub2", function() {
    return {
        template : "<input ng-model=CuId> <input ng-model=Name> <input ng-model=Quantity>"
    };
});

HTML代码:

<div ng-app="myApp">
<main>
   <sub1>Test<</sub1>
   <sub2>Test<</sub2>
</main>
</div>

JS小提琴链接:https://jsfiddle.net/bagya1985/23vz1xux/1/

1 个答案:

答案 0 :(得分:1)

AngularJS支持指令控制器,指令控制器是在需要相同控制器的多个指令之间共享的控制器。您需要在子指令中使用git checkout . # or re-stash if you still want that patch git checkout - # switch back to previous branch 。有关详细信息,请查看链接https://docs.angularjs.org/guide/directive