寻找最佳形式,使指令之间的单向绑定

时间:2015-08-02 00:14:20

标签: angularjs data-binding angularjs-directive isolate-scope

我有 plunker

我想知道是否有办法在指令之间进行单向绑定?

我有一个父亲指令和他的儿子。我想向孩子发送一个对象(或模型),当孩子收到这个并在输入上显示对象时,如果我修改任何输入字段;父亲不听这些改变。

我决定使用angular.copy来修改这个新副本,就在我点击时。孩子将新对象发送给父亲('&')。

myApp.directive('oneWayBinding', function() {

  return {
    restrict: 'EA',
    scope: {
      datasource: '=',
      add: '&'
    },
    controller: function ($scope) {

      $scope.newName = {};

      $scope.init = function(datasource) {
        angular.copy($scope.datasource, $scope.newName);
      };

      $scope.init();

      $scope.senFather = function(){
        $scope.add({newName:$scope.newName});
      };

    },
    template: '<h3>Directive</h3>' +
                  '<label>Nombre y Apellido: </label>' +
                  '<input ng-model="newName.name"><input ng-model="newName.apellido"><button ng-click="senFather()">Send Father</button><br>'
  };

});

还有另一种方法或形式吗?

由于

1 个答案:

答案 0 :(得分:1)

我不会使用术语“单向绑定”,但是,这是通常用于隔离更改的方式。