1

从使用 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。如何做到最好?

4

0 回答 0