2015-11-16 67 views
3

ngIf在父範圍內創建另一個範圍。根據角度記錄,據我瞭解,從這個link,理論上是通過範圍內的父範圍。但在實踐中,事實並非如此。我需要將這個範圍特性傳遞給父範圍。我怎樣才能做到這一點。如何將範圍傳遞給父範圍

感謝您的任何幫助。

+0

您可以創建[最小,完整和可驗證示例。](http://stackoverflow.com/help/mcve)? – Satpal

+2

請創建一個示例,我也推薦使用'Controller As',並且刪除範圍。它將解決很多這些問題。 –

回答

3

有很多方法可以解決這一個,如果我理解你的問題(我試過)。提供了替代方案。

方法1:

可以使用$父ng-if並做休息。

方法2:

你只需要修改結構爲對象符號即{obj.yourval}

<body ng-app="ngAnimate" ng-init="cool.mess='Im removed';checked=true"> 
    <br/> : {{cool.mess}} 
    <br/> Click me: <input type="checkbox" ng-model="checked" /><br/> 
    Show when checked: 
    <span ng-if="checked" class="animate-if"> 
    <input type="text" ng-model="cool.mess"/> 
    </span> 
</body> 

樣品爭奪here

方法3

可以使用ng-hide而不是使用ng-if解決了所有的奧祕(恕我直言是這樣,如果你什麼都沒有做UI重新構造你buddie)。

PS:只是圍捕,如果使用ng-if它創建一個子範圍文檔說清楚。所以孩子可以不用其他方式訪問父母的數據。這就是爲什麼在父母一級不反映兒童結構改變的原因。使用任何上述替代品。

+0

我需要不編譯代碼,如果ngIf預期錯誤,因爲它影響的功能不是UI,所以方法3不是我正在尋找的解決方案。我無法理解方法2.這是如何解決問題的。另外,我對方法1也不太滿意。 $ parent在ng-if中使用的優點是什麼?謝謝。 – xxlali

+0

@xxlali通常情況下'$ parent'可以從孩子級別訪問父母級數據。再次看到我正在強調「內部」孩子,因爲您知道內部孩子範圍內的孩子可以訪問「唯一」孩子的數據。所以我們使用兒童內部的$ parent來獲取父母的數據。 #ng-if創建一個單獨的實例(如果使用)。 –

+0

我沒有時間去嘗試。當我嘗試,如果這解決了我的問題,我標記。別擔心。 – xxlali