簡體   English   中英

從指令更新作用域,並與另一個監視

[英]Update scope from directive and watch with another one

這是問題所在:

我嘗試做這樣的事情:

  1. 單擊指令可觸發事件
  2. 事件將數據發送到rootScope函數,該函數使用新數據設置范圍變量值
  3. 另一個指令在其模板中具有ng-model,該模型應反映以前更改的var
  4. 數據應在視圖和模型中更新。 模型還可以(更新完成),但是視圖更新似乎不會自動觸發,僅當我單擊“顯示按鈕”時才會更新(請參見小提琴)

這是我制作的相應的jsfiddle,帶有注釋:

http://jsfiddle.net/wkmm576m/7/

這是我認為麻煩的代碼...:

app.directive('addEditInput', function() {
    return {
        restrict : 'E',
        template : '<div id="editForm"><input type="text" ng-model="currentVar.name" /><br/></div>'
    }
});

實際上,我返回了一個帶有ng-model的模板。 但是當ng-model的值從其他任何地方更改時,不會更新ng-model ...

TBH,我對指令和范圍通信-數據...有點困惑。

感謝您的閱讀/幫助

簡短的答案-您需要在頂級控制器中調用$scope.$applyhttp : //plnkr.co/edit/QEjzlsJj4fh1eeqBXSvt?p=preview

長答案:將常規js函數綁定到常規js事件,因此,當用戶單擊element時,您的函數將執行。 就這樣。 當您使用ng-click時-會觸發摘要循環,並且您的綁定也會更新。 因此,您需要手動觸發它,因此調用$scope.$apply

注意:最好不要在不需要的地方使用jquery。 即使用$element.bind('click',function(){代替$().on...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM