Angular.js Search查询搜索表单是否不在当前文件中
Angular.js Search Query if search form is out of current file
我在index.html上有这样的代码:
<div class="container-fluid people-container">
<div class="search">
<!--Sidebar content-->
<span class="search-text">Search:</span>
<input ng-model="query" class="search-input">
<span class="sort-text">Sort:</span>
<select ng-model="orderProp" class="sort-select">
<option value="name">Alphabetical</option>
<option value="age">Date</option>
</select>
</div>
<div class="people-listing">
<!--Body content-->
<ul class="people">
<li ng-repeat="person in people | filter:query | orderBy:orderProp" class="thumbnail person-listing clearfix">
<a class="clearfix" href="#/people/{{person.id}}">
<img class="thumb" ng-src="{{person.imageUrl}}">
<div class="person-info">
<h1 class="title">{{person.name}}</h1>
<span class="year">{{person.born}} - {{person.died}}</span>
</div>
</a>
</li>
</ul>
</div>
</div>
我决定将UI分成几个部分,并将搜索部分移动到search.html:
<div class="search">
<!--Sidebar content-->
<span class="search-text">Kërko:</span>
<input ng-model="query" class="search-input">
<span class="sort-text">Radhit sipas:</span>
<select ng-model="orderProp" class="sort-select">
<option value="name">Alfabetit</option>
<option value="age">Vitit</option>
</select>
</div>
在此之前,搜索表单工作得很好。在我把它移到另一个模板后,它不起作用。我不知道,因为这是我第一天使用Angular.js,我需要一些帮助。另外,这里是我的controllers.js:
var deshmoretControllers = angular.module('deshmoretControllers', []);
deshmoretControllers.controller('PeopleListCtrl', ['$scope', 'Person',
function($scope, Person) {
$scope.people = Person.query();
$scope.orderProp = 'age';
}]);
...
砰砰作响:
http://plnkr.co/edit/J98O34dBFaUchhKdT6ck我修复了代码。里面有很多问题……工作柱塞LINK
1. you need ng-controller which covers both search & results, you kept the controller on just each box & not on list
2. make sure that you ng-model never uses value without dot, rather than query - use variable as search.query
2b. make sure to initialize the search object in controller $scope.mysearch = {};
我做了下面的修改
- 将控制器移动到list.html而不是search.html
- init美元范围。mysearch = {} in controller
这是一个原型继承问题。假设您正在移动模板并使用ng-include
引用它。ng-include
创建一个新的作用域。您将query
设置在新作用域中,而不是在作为PeopleListCtrl
的一部分的父作用域中
要修复它,将查询定义为父范围
上的object $scope.query={term:''}
然后在partial search.html
中将其作为查询引用 <input ng-model="query.term" class="search-input">
通过这种方式,子作用域可以操作父作用域上定义的对象属性。
只要父子关系存在,你现在就可以访问父作用域中的更新查询数据。
如果使用的话,ng-controller= PeopleListCtrl
的声明应该在插入search.html的父元素上。如果控制器是用$route definition注入的,那么就不需要做任何改变了。
由于query
已更改为对象,因此所有引用都应该是现在的query.term
,如
ng-repeat="person in people | filter:query.term | orderBy:orderProp"
要了解更多关于原型继承和作用域的知识,请参阅这个wiki https://github.com/angular/angular.js/wiki/Understanding-Scopes
- js文件是否阻碍了war文件的构建
- 使用jQuery检查文件是否存在
- 如何检测 javascript 文件是否被 IE11 安全设置阻止
- 为用户应用程序托管 javascript 文件是否安全
- ANT:检查文件是否为空
- Extjs 抛出错误“请验证文件是否存在”
- http(localhost或remote)提供的文件是否可以从通过file://protocol打开的本地文件访问?反
- 如何检查内容txt文件是否已更改
- 方法来查看jQuery文件是否已完全加载,然后执行与其相关的函数
- 如何知道向iframe提交表单和文件是否失败
- Node js在复制之前检查文件是否打开
- 是否可以检查文件是否返回 404 错误,如果它位于具有 javascript 或 jQuery 的不同服务器上
- 如何检查闪存文件是否停止使用 javascript
- 是否有任何工具可以检查js文件是否可以安全压缩
- 检查文本文件是否包含带有javascript的内容
- 拥有多个 HTML 页面通常使用的单独 javascript 文件是否会加快页面加载速度
- 根据页面分隔JS文件是否是一种好的做法
- JavaScript 使用 Google 地图 API 检查文件是否存在
- 检查目标文件是否已存在
- 帆 JS 检查上传文件是否已发送