2016-06-16 374 views
1

難以調試從開發人員隱藏其複雜性的框架。 Angular的指示簡單地工作 - 或者他們沒有。我相信不知道你是如何調試它們的。實施指令的角度

我想要得到一個指令,但我不知道我在想什麼。

這裏是我的index.cshtml參考:我知道它的加載

<script src="~/Content/js/apps/store/directives/validNumber.js"></script> 

,我把一個斷點,在它的瀏覽器 - 我看到了斷點上市:

breakpoints: validNumber.js:7 console.log("foo"); 

但它永遠不會擊中那條線 - 永不斷裂,永遠不會打印出foo。

validNumber.js:

(function() { 
    'use strict'; 
    angular 
     .module('WizmoApp') 
     .directive('validNumber', function() { 
      console.log("foo"); 
      return { 
      }; 
     }); 
})(); 

edit_listing.html:

<input type="text" class="form-control" name="Value" ng-model="listingVm.form.Value" required ng-valid-number> 

我在做什麼錯?

(我想實現這個: http://jsfiddle.net/jamseernj/6guy3sp9/

+0

嘗試改變'NG化有效number'在你輸入'有效,number'。 –

+0

您忘記了angular.module('WizmoApp',[]); – gyc

回答

1

你的HTML試圖調用指令ng-valid-number,但你的指令是validNumber(無NG)。所以,你的html應該是

<input type="text" class="form-control" name="Value" ng-model="listingVm.form.Value" required valid-number> 
+0

Yah。它最初是有效的號碼。 ng-valid-number只是在黑暗中拍攝的,因爲沒有任何工作。 – DaveC426913

+0

檢查您的HTML是否包含正確的應用程序''並定義了應用程序(如果不是,則會在F12中發生錯誤,但指令指向它);當然也包括角度本身 – Felix

0

指令返回一個對象。 Javascript代碼放在鏈接,編譯或控制器功能中。

https://docs.angularjs.org/guide/directive

把你的console.log在適當的地方,它將會運行。 (編輯:我很驚訝代碼甚至在指令的中間運行...使用鏈接代替)

你忘了先註冊你的模塊。

(function() { 
 
    'use strict'; 
 
     angular.module('WizmoApp', []); 
 
     angular 
 
     .module('WizmoApp') 
 
     .directive('validNumber', function() { 
 
      console.log("foo"); 
 
      return { 
 
      } 
 
     }); 
 
})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="WizmoApp"> 
 
    <input type="text" class="form-control" name="Value" ng-model="listingVm.form.Value" required valid-number> 
 
</div>