从使用 controllerAs 声明的指令中,我想将范围变量传递给嵌套指令,该指令将在其中使用。我希望“内部”的任何变化都反映在外部,反之亦然。
通过隔离范围获取变量不是一种选择,因为 controllerAs 指令已经要求隔离范围。在此处查看示例
我在内部指令中提出了这个:
link: function($scope, el, attrs, ngModel) {
$scope.ngModel = {};
$scope.modelValue = ngModel.$modelValue;
$scope.$watch(function () {
return ngModel.$modelValue;
}, function(newValue) {
$scope.ngModel = newValue;
});
$scope.$watch(function () {
return $scope.ngModel;
}, function(newValue) {
ngModel.$setViewValue(newValue);
}, true);
}
-如下例所示,但它看起来很hacky。如何做到最好?