【问题标题】:angular: nested directive ngmodel角度:嵌套指令 ngmodel
【发布时间】:2015-10-27 18:33:31
【问题描述】:

假设我们有一个指令,里面有一个嵌套指令。两个指令都希望在数据显示之前对其进行更改。我使用 ngModelController 来做到这一点,但我愿意接受其他建议。

我的问题:如果不使用 scope.$apply() 我无法让它工作,但另一方面,当我使用它时 scope.$apply() 会抛出一个错误,这表明它是不必要的。

这里有一个问题:http://embed.plnkr.co/RROBxuITLpYnGkHSQAe3/preview

我做错了什么?

【问题讨论】:

  • 代码应该在问题中

标签: angularjs directive angular-ngmodel


【解决方案1】:

我认为你应该阅读更多关于 ngModelController 的信息,尤其是关于 $formatters $parsers$render 的信息。这是很棒的教程:http://www.chroder.com/2014/02/01/using-ngmodelcontroller-with-custom-directives/。他们也在那个问题中得到了解释:ngModel Formatters and Parsers

在您的情况下,您可以将 $watch 替换为格式化程序功能。从控制器更改值时调用格式化程序。您可以在格式化程序函数中操作数据,然后将其设置为$viewValue。好的做法是尽可能少地使用 $watches。

另外,恕我直言:

scope: {
 myVal: '=ngModel'
}

看起来很糟糕。这可能会让其他将使用您的代码的程序员感到困惑。 ngModel 应该放在require 属性中使用。

我会这样做: http://plnkr.co/edit/Ve1Ipm53BiYorjtxron5?p=preview

【讨论】:

    猜你喜欢
    • 2015-11-11
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    相关资源
    最近更新 更多