我有一個表格,這與您可以編輯圖片庫,當然我創建了一個指令,它,像這樣:AngularJS從指令控制器將數據傳遞到另一個
galleryEdit.html
<div>
<form ng-submit="submit()">
<label>Headline:</label>
<input type="text" ng-model="gallery.headline" placeholder="Enter headline here" value=""/>
<label>channels:</label>
<channelselect></channelselect>
<input type="submit"/>
</form>
</div>
所以,galleryEdit還有一個指示信道選擇,這與您可以選擇的通道(不僅是畫廊)
channelselect.html
<div>
<select>
<option value="{{channel.shortCode}}">{{channel.name}}</option>
</select>
</div>
GalleryEdit有一個控制器,爲其指令傳遞數據(稱爲「圖庫」),因此其$ scope具有$ scope.gallery屬性,其中包含通道ID:$ scope.gallery.channel。 由於channelselect具有不同的控制器,它具有其範圍,因此無法從該範圍中看到此gallery.channel。 有沒有什麼方法可以將圖庫中的數據傳遞給通道控制器/指令? 使用$ scope。$ parent不是解決方案,因爲channelSelect不應該知道數據來自哪裏。
僅僅因爲兩個指令都有一個控制器並不意味着它們有單獨的作用域。指令定義對象上的'scope'屬性確定是否創建新的作用域(或否),以及新作用域是否爲隔離作用域。所以一個可能的解決方案是不創建任何新的範圍,那麼這兩個指令將共享相同的範圍,並因此可以訪問所有相同的$範圍屬性/數據。 –