2016-08-01 18 views
0

我正在學習Angular.js,並且通過ng模型我們理解,我們將值(我們從任何輸入中獲得的)附加到控制器的$scope對象。但最近我打算通過它的過濾器和我不明白,在angularjs的官方網站filters in angular js給出的例子,我不明白的是在angularjs的ng模型中如何添加參數?

<label>Any: <input ng-model="search.$"></label><br> 
<label>Name only <input ng-model="search.name"></label><br> 
<label>Phone only <input ng-model="search.phone"></label><br> 
<label>Equality <input type="checkbox" ng-model="strict"></label><br> 
<table id="searchObjResults"> 
    <tr> 
     <th>Name</th> 
     <th>Phone</th> 
    </tr> 
    <tr ng-repeat="friendObj in friends | filter:search:strict"> 
     <td>{{friendObj.name}}</td> 
     <td>{{friendObj.phone}}</td> 
在上面的代碼

我們如何將參數添加到NG模型和它們如何被訪問?因爲ng-init有「朋友」,這兩個如何與執行過濾或搜索相關?
我只是想了解如何提供search.name或search.phone我們能夠分別訪問friends.name和friends.phone

+0

你想使用nginit聲明訪問變量嗎 –

+0

'ng-model'不是函數,它沒有參數。您可以將參數傳遞給'filter',因爲它是'angular'對象上的一個方法。 –

+0

我只是想了解如何提供search.name或search.phone,我們可以分別訪問friends.name和friends.phone。 – YepMe

回答

0

friends是對象數組。 friends的每個子對象都具有namephone屬性。正如你所說,這個對象數組由ng-init填充。

您還有你的範圍內的對象(模型)search。它也有namephone屬性。

friendObj in friends | filter:search:strict是過濾器指令的標準用法。代表着;使用「搜索」過濾「朋友」。

當使用search對象AngularJS基本上遍歷friends過濾friends(對象陣列),並收集兩個friendObj.name == search.namefriendObj.phone == search.phone返回true記錄(嚴格模式)。如果您將last(strict)參數設置爲false,則會檢查子字符串。

+0

提供的。所以你的意思是每當對象數組的參數和搜索對象有確切的名字(姓名和電話)時,它會做一個比較,請原諒我,如果我是錯了,我試圖很好地理解它。假設,如果我們給一些不同的參數(如search.age),那麼它不會顯示任何東西 – YepMe

+0

是的,你是對的。如果您的搜索模型具有任何其他屬性,則過濾的結果將爲空。 _(如果您不更改比較器)_如果您想在2016年5月至2017年5月應用其他過濾器機制,例如年齡> 18的過濾器記錄或''過濾器記錄「,則可以使用**比較器** 「'。 –

+0

它是語法中的「anyPropertyKey」嗎? – YepMe