2016-06-07 69 views
0
---html--- 
<input-wrap> 
<input type="text"/> 
</input-wrap> 

---js--- 
myModule.directive('inputWrap',function(){ 
    return{ 
     restrict: 'E', 
     priority: 0, 
     link: function(scope,element,attr){ 
      var myInput = element.find('input'); 
      scope.$watch(myInput.val(),function(val){ 
       console.log('recipe is now:'+val); 
      }); 
     } 
    } 
}); 

我想這樣做,即使沒有對(「變化」)的幫助和對(「輸入」) 因爲該值有時被修改我使用的插件,它不會觸發onChange和onInput事件。添加手錶指令內element.val(),即使沒有ngModel

回答

1

寫您的守望者一樣:

myModule.directive('inputWrap',function(){ 
return{ 
    restrict: 'E', 
    priority: 0, 
    link: function(scope,element,attr){ 
     var myInput = element.find('input'); 
     scope.$watch(function() { return myInput.val() },function(val){ 
      console.log('recipe is now:'+val); 
     }); 
    } 
} 
}); 
+0

太感謝你了,最後我想$手錶一個問題是假設觀看這樣的手錶$(「VARIABLENAME」,處理程序())?爲什麼即使沒有變量名稱的字符串表示,您的解決方案仍然工作? – anaval

+0

您可以爲$ watch提供兩件事: - 代表範圍內變量的字符串。當範圍內的變量值變化時,將調用回調。 - 一個函數。將在每個摘要階段被調用。此方法不需要對範圍進行任何表示。但是性能可能很糟糕,因爲函數被調用很多次。 – Silvinus