【问题标题】:Angularjs directive: Passing a model reference to an isolated scopeAngularjs 指令:将模型引用传递给隔离范围
【发布时间】:2025-12-29 13:50:12
【问题描述】:

我正在尝试编写一个可折叠、可重用的计算器指令,该指令绑定到输入字段(在父范围内)。此输入字段本身具有ngModel 绑定。 当用户按下我的指令的等号按钮时,这个父范围模型应该被更新。我需要隔离范围,以便我可以重用它:

这是简化的代码以及我想如何使用它: http://plnkr.co/edit/OSOcxydJWh8K520nstAU?p=preview

我尝试将值作为属性传递。但这不起作用,因为我不知道如何在控制器内部更新此属性(我尝试了$attrs 服务)。

那么如何从指令更新模型?

【问题讨论】:

    标签: angularjs angularjs-directive


    【解决方案1】:

    也许你想多了,也许我想得太少了。无论哪种方式,这都是我所做的一切来改变你的工作:

    if ($scope.operator ==='+') {
      $scope.field = parseInt($scope.field) + $scope.operand;
    }
    

    我取消了您的范围的注释,然后确保您的控制器引用了您在范围中公开的数据。就是这样。

    这是您的 Plunker 的工作版本:http://plnkr.co/edit/btBi3E

    【讨论】:

    • 谢谢,这正是我想要使用它的方式。我尝试的是像注入服务一样访问它(console.log(field),而不是 console.log($scope.field)
    【解决方案2】:

    您需要使用ngModelController。这是一个文档链接,带有一个方便的示例: NgModelController

    【讨论】: