我想制作一个罗马数字计算器,可以将输入数字的数字转换为数字。我理解如何将变量绑定到文本输入但我不知道如何执行函数'在它上面输入它。我该怎么做?
感谢。
答案 0 :(得分:4)
$ scope.watch在文本输入的ng模型上。然后运行要在ng-model变量上执行的代码。
e.g。
// html...
<input type=text ng-model="textBox" />
// controller
$scope.$watch('$scope.textBox', function(newValue, oldValue) {
// do stuff to the text everytime it changes
});
这个$ scope的好处。$ watch例如你不想在newValue上执行该函数,除非它是2或3个字符以上。与简单的ng-change相比,它只是让你对函数有了更多的控制。
答案 1 :(得分:4)
使用ng-change指令:here the docs
示例
在模板中
<input type="text" ng-change="yourFunction(value)" ng-model="value"/>
在控制器中
$scope.value = ""
$scope.yourFunction = function(value){
//Put code logic here
}
编辑:
在您的情况下,您还可以创建过滤器
module.filter("convertToRomanNumber", function(){
//Improve code logic here
return function(input){
var value="";
for(var i=0; i<input; i++){
value+="I"
}
return value;
}
})
并在模板中调用
<input type="text" ng-change="yourFunction(value)" ng-model="value"/>
{{value | convertToRomanNumber}}