我的输入ng-model
属性设置为“search.name”
HTML
Search:
<span id="searchName"> titles </span> | <span id="searchSpecies"> species </span>:
<input type="text" data-ng-model="search.name" />
如何在点击其他元素时更改此属性,例如链接或按钮,并让我的过滤器使用更新的属性?现在即使我更新了属性,过滤器就像没有更新一样。
这是我更新属性的方式:
SCRIPT
$("#searchName").click(function() {
$("input").attr("data-ng-model", "recipesearch.name");
});
$("#searchSpecies").click(function() {
$("input").attr("data-ng-model", "recipesearch.species");
});
有没有更好的方法可以使用指令来做到这一点?
答案 0 :(得分:3)
如果我正确理解了问题,您可以根据输入框中输入的内容过滤数据。但是您还有其他链接可以自动更改搜索,可能是“常用搜索值”列表。
我会做的事情在Fiddle中列出。
基本上我建议使用ng-click链接或按钮来更新正在搜索的值。
示例:
标记
<a href="#" ng-click="changeSearchTo('Cat')">Cat</a>
控制器
$scope.changeSearchTo = function (searchCriteria) {
$scope.search = {
name: searchCriteria
};
};
如果我不明白你的问题,我道歉。
-Thad
答案 1 :(得分:2)
您可能需要查看$setViewValue
“应该从DOM事件处理程序中调用此方法 示例输入或选择指令调用它。
它在内部调用所有解析器,如果结果值有效, 更新模型并调用所有已注册的更改侦听器。“
答案 2 :(得分:1)
将您的代码包含在$(document).ready()
内,如下所示
并确保添加了jQuery库的链接
$(document).ready(function () {
$("#searchName").click(function () {
$("input").attr("data-ng-model", "recipesearch.name");
});
$("#searchSpecies").click(function () {
$("input").attr("data-ng-model", "recipesearch.species");
});
});