这是我第一次玩AngularJS,实际上,我正在按照入门教程进行操作.我想到了我会将教程脚本调整到我的理解中,只需添加一些本教程中没有的内容.
基本上,本教程中使用的手机对象是:
{
"age": 1,
"id": "motorola-xoom",
"imageUrl": "img/phones/motorola-xoom.0.jpg",
"name": "MOTOROLA XOOM™",
"snippet": "The Next, Next Generation..."
}
Run Code Online (Sandbox Code Playgroud)
我试图做的是添加一个自动填充的选择框来订购列表:
<select ng-model="orderProp">
<option ng-repeat="(key, value) in phones[0]" value="{{key}}">
{{labels[key]}}
</option>
</select>
Run Code Online (Sandbox Code Playgroud)
并为控制器添加了模型标签:
$scope.labels = {
"name": "Phone name",
"snippet": "Description",
"age": "Newest",
};
Run Code Online (Sandbox Code Playgroud)
它按预期工作,除了我只想过滤上面的3个属性,所以我认为很容易添加自定义谓词函数进行过滤,如下所示:
$scope.isPhonePropFilterable = function (propName) {
console.log('it DOES NOT get here!!!');
return propName == 'name' || propName != 'snippet' || propName != 'age';
};
Run Code Online (Sandbox Code Playgroud)
并将其添加到ng-repeat中
<option ng-repeat="(key, value) in phones[0] | filter:isPhonePropFilterable" …Run Code Online (Sandbox Code Playgroud)