2014-05-05 49 views
0

我一直在探索Angular X可編輯項目並且遇到了這種奇怪的行爲。爲什麼在x-editable + ng-repeat中發生這種情況

每當我點擊3個'select'組件中的任何一個並嘗試從下拉列表中更改值時,方法'showStatus(..)'也會被其他組件在ng-repeat內部觸發邊界。 (您可以通過控制檯查看)

請問您爲什麼會這樣?我錯過了什麼..?

EDITED LINK - >小提琴:http://jsfiddle.net/hrr4M/4/

<span ng-repeat="d in list" > 
    <a href="#" editable-select="d.status" e-ng-options="s.value as s.text for s in statuses"> 

     {{ showStatus(d.status) }} 

    </a> <br/> 
</span> 

回答

2

你必須是你的綁定

{{ showStatus(d.status) }} 

火起來的每個項目的功能,因爲每一個項目被填充的問題,它只是他們全部重新燃燒並再次燃燒。

這是不適合設置的地方。

我爲你設置一個修改小提琴:http://jsfiddle.net/hrr4M/13/

我在裏面加入

onaftersave="showStatus($data)" 

這樣一來,項目已被選定後,就可以觸發一個功能(參見文檔爲鏈接聲明onaftersave vs onbeforesave),並且您可以使用$ data得到所選值。

現在它已經可以工作了。問題是,你的綁定仍然使用相同的功能,因此一直在啓動。

我複製了該函數並將其重命名爲repeatFiller具有相同的功能,但省略了控制檯日誌,因此您可以看到它的工作原理。你可能稍微調整一下,但我認爲它可以滿足你的需求。

相關問題