AngularJS可以做的一件有趣的事情是对特定的数据绑定expression式应用filter,这是一种方便的方式来应用,例如,特定于文化的货币或模型属性的date格式。 在范围上计算属性也很好。 问题是这些function都不适用于双向数据绑定场景 – 从范围到视图只有单向数据绑定。 这似乎是在一个优秀的图书馆明显的遗漏 – 或者我错过了什么? 在KnockoutJS中 ,我可以创build一个读/写计算属性,它允许我指定一对函数,一个被调用来获取属性的值,另一个在属性被设置时被调用。 这允许我实现文化感知input – 让用户input“$ 1.24”并将其parsing为ViewModel中的float,并在input中反映ViewModel中的变化。 我可以find类似的最接近的是使用$scope.$watch(propertyName, functionOrNGExpression); 这允许我在$scope中的一个属性发生变化时调用一个函数。 但是,这并不能解决文化意识的input问题。 注意当我尝试修改$watch方法本身内的$watch $watched属性时的问题: $scope.$watch("property", function (newValue, oldValue) { $scope.outputMessage = "oldValue: " + oldValue + " newValue: " + newValue; $scope.property = Globalize.parseFloat(newValue); }); ( http://jsfiddle.net/gyZH8/2/ ) 当用户开始input时,input元素会变得非常困惑。 我通过将属性分成两个属性来改进它,一个用于parsing值,另一个用于parsing值: $scope.visibleProperty= 0.0; $scope.hiddenProperty = 0.0; $scope.$watch("visibleProperty", function (newValue, oldValue) […]