Javascript 无法访问从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&

我是个新手,可能会错过一些明显的东西。我确实阅读了ng模型范围文档。并遵循使用对象而不是原语的建议

我还尝试了其他一些人建议的$parent。那也没用

我在这里读过很多关于ng repeat的问答。但他们谈论的是ng repeat中的输入。在我的例子中,只有一个文本框。我正在尝试使用ng repeat在树内搜索

<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>