Javascript 无法访问从ng repeat调用的函数中的用户输入
我是个新手,可能会错过一些明显的东西。我确实阅读了ng模型范围文档。并遵循使用对象而不是原语的建议 我还尝试了其他一些人建议的$parent。那也没用 我在这里读过很多关于ng repeat的问答。但他们谈论的是ng repeat中的输入。在我的例子中,只有一个文本框。我正在尝试使用ng repeat在树内搜索Javascript 无法访问从ng repeat调用的函数中的用户输入,javascript,angularjs,treeview,angularjs-ng-repeat,angular-ngmodel,Javascript,Angularjs,Treeview,Angularjs Ng Repeat,Angular Ngmodel,我是个新手,可能会错过一些明显的东西。我确实阅读了ng模型范围文档。并遵循使用对象而不是原语的建议 我还尝试了其他一些人建议的$parent。那也没用 我在这里读过很多关于ng repeat的问答。但他们谈论的是ng repeat中的输入。在我的例子中,只有一个文本框。我正在尝试使用ng repeat在树内搜索 <script type="text/ng-template" id="tree_item_renderer.html"> {{data.name}} <ul&
<script type="text/ng-template" id="tree_item_renderer.html">
{{data.name}}
<ul>
<li ng-repeat="data in data.nodes" ng-include="'tree_item_renderer.html'" ng-show="visible(data)"></li>
</ul>
</script>
看一看我在JSFIDLE上看到了您的代码。有一个问题,您调用了
ng controller=“TreeController”
两次并初始化了ng app=Application
。我已经注释掉了这两行代码,您可以在控制台上看到更改
出现此问题的原因是您需要重新初始化TreeController
,它会清除input.searchText
的值
检查工作状态
搜索UIC:
-
我在JSFIDLE上看到了您的代码。有一个问题,您调用了ng controller=“TreeController”
两次并初始化了ng app=Application
。我已经注释掉了这两行代码,您可以在控制台上看到更改
出现此问题的原因是您需要重新初始化TreeController
,它会清除input.searchText
的值
检查工作状态
搜索UIC:
-
可见函数背后的逻辑是什么?它应该过滤匹配用户输入字符串的节点。可见函数背后的逻辑是什么?它应该过滤匹配用户输入字符串的节点。
$scope.visible = function(item) {
console.log("SearchText inside visible: " + $scope.input.searchText);
return !($scope.input.searchText && $scope.input.searchText.length > 0
&& item.title.indexOf($scope.input.searchText) == -1);
};
<div ng-app="myApp">
<div ng-controller="TreeController">
Search UIC:
<input type="text" ng-change="search()" ng-model="input.searchText"
placeholder="Enter your search terms" />
<!-- <ul ng-app="Application" ng-controller="TreeController"> -->
<ul>
<li ng-repeat="data in tree" ng-include="'tree_item_renderer.html'" ng-show="visible(data)">
</li>
</ul>
</div>
</div>