【发布时间】:2012-09-19 01:25:52
【问题描述】:
可能是个愚蠢的问题,但我的 html 表单带有简单的输入和按钮:
<input type="text" ng-model="searchText" />
<button ng-click="check()">Check!</button>
{{ searchText }}
然后在控制器中(从routeProvider调用模板和控制器):
$scope.check = function () {
console.log($scope.searchText);
}
为什么在单击按钮时,我在控制台中看到视图已正确更新但未定义?
谢谢!
更新:
似乎我实际上已经解决了这个问题(之前不得不想出一些解决方法):
只需将我的属性名称从searchText 更改为search.text,然后在控制器中定义空的$scope.search = {}; 对象,瞧……不知道为什么它会起作用;]
【问题讨论】:
-
您确定在这部分文档中使用了这个控制器吗?你能发布一个最小的失败示例吗?
-
是的,100% 确定控制器没问题,这个问题对我来说似乎很熟悉......令人惊讶的是,当我将属性名称从
searchText更改为search.text时,它会起作用,知道为什么?? -
@Arthur:这有点不明显,但 ng-model 只会在您的视图中创建一种 speak 局部变量,因此如果您想保持这种方式,您需要将它传递给检查() 函数,例如:check(searchText),然后您的控制器将识别它。希望对你有帮助
-
为了记录,拼写为
voila,而不是vuala、wolla等。 -
我认为您正在寻找的答案是*.com/a/14049482/1217913
标签: javascript angularjs data-binding angular-ngmodel