angular:嵌套指令ngmodel

时间:2015-08-05 06:20:06

标签: angularjs directive angular-ngmodel

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

我的问题:我不能在没有使用范围的情况下使用它。$ apply()但另一方面是范围。$ apply()在我使用它时会抛出一个错误,表明它是不必要的。

以下是该问题的一个问题:http://embed.plnkr.co/RROBxuITLpYnGkHSQAe3/preview

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为您应该详细了解ngModelController,尤其是$formatters $parsers$render。这是一个很棒的教程:http://www.chroder.com/2014/02/01/using-ngmodelcontroller-with-custom-directives/。他们也在这个问题中解释:ngModel Formatters and Parsers

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

另外,imho使用:

scope: {
 myVal: '=ngModel'
}

看起来很糟糕。对于将使用您的代码的其他程序员来说,这可能会让您感到困惑。将ngModel置于require属性中时,应使用{{1}}。

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

相关问题