我在从控制器读取 ng-model 时遇到了一些“问题”。
我想做这个:
<input type="text" ng-model="code">
<button ng-click="setCode()">Login</button>
在我的控制器中访问该变量,如下所示:
$scope.setCode = function(){
alert($scope.code);
}
这就是我想要做的,但我的代码变量是未定义的。
我找到了两种方法来让它工作:
1) 将变量作为参数传递
<input type="text" ng-model="code">
<button ng-click="setCode(code)">Login</button>
和:
$scope.setCode = function(code){
alert(code);
}
2) 将我的变量声明为对象
<input type="text" ng-model="code.text">
<button ng-click="setCode()">Login</button>
和:
$scope.code = {text: 'foo'};
[...]
$scope.setCode = function(){
console.log($scope.code);
}
(我更喜欢第二个)
但我对我应该做什么有点困惑。可以像对象一样声明我的 ng 模型吗?我必须像对象一样声明我的所有模型?
编辑:这是问题的 Plnkr
在这个例子中(我使用的是Ionic框架),我用值 test 声明了一个变量代码,当我在输入中更改模型并按下开始按钮时,理论上我必须在警报中看到新值模型。但我看到的是旧的。
谢谢!