2014-01-27 88 views
0

我需要一個本地範圍內的指令,本地範圍將通過以下方式進行更新:更改本地範圍的指令

var update; 
angular.module('docsTransclusionExample', []) 
    .directive('myDialog', function() { 
    return { 
     restrict: 'E', 
     scope: {}, 
     templateUrl: 'my-dialog.html', 
     link: function (scope, element) { 
     scope.name = 'Jeff'; 

      update = function(name){ 
       scope.name = name; 
      }; 
     } 
    }; 
    }); 

現在從外面的東西會叫更新,並通過一個名稱。
然而,現在(jsfiddle),名稱不會在屏幕上更新。我錯過了什麼?誰能幫忙?謝謝。

- EDIT--
忘了補充 - 這是一個簡化,但在某些時候,而不是在按鈕點擊時調用一個函數,該指令將訂閱一個服務,它將把數據推送到它以同樣的方式。

回答

1

由於您的更新函數不是角度範圍的一部分,因此您需要觸發範圍$手動應用以角度更新其他地方的值。添加到你的更新功能:

scope.$apply(); 
+0

啊太好了,錯過了那件小事甚至我看到它在其他地方。謝謝 :) –