将当前模型/范围传递给AngularJS指令

时间:2015-07-20 12:48:37

标签: angularjs angularjs-directive

我有一个像这样的指令设置

return {
  restrict: 'E',
  scope: {
    savingModel: '='
  },
  templateUrl: '/templates/savingindicator'
};

我这样使用它:

<saving-indicator saving-model="myModel"></saving-indicator>

我想在遗留代码上使用它,遗留代码在当前作用域/控制器上具有myModel的所有属性。如何将其传递给此指令?执行以下操作似乎不起作用,因为savingModel为空

<saving-indicator></saving-indicator>

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案,假设您的问题是该指令需要$scope.savingModel = {saved: false, saving: true}而不是$scope.saving = true; // ...,那么只需附加一个自引用,然后传递:

$scope.savingModel = $scope;

但是,如果在Object上运行任何深度/递归复制函数,则可能会出现问题。

最好的解决方案是重构代码并创建单独的模型对象,上面只是一个快速入侵,让事情变得紧张。