2016-11-18 122 views
1

我對我的指令有些問題。指令未加載

指令和控制器的js文件包含在index.html中,路徑是正確的。 在控制檯中沒有給出錯誤,但我的標記不呈現。任何幫助都會有所幫助。 下面是一些我的代碼

loginForm.js

(function() { 
angular 
    .module('sysConApp') 
    .directive('loginForm', [ 
     function() { 
      return { 
       restrict: 'E', 
       scope: {}, 
       templateUrl: 'scripts/directives/loginForm/view/loginFormView.html', 
       controller: 'LoginFormController', 
       replace: 'true' 
      } 
     } 
    ]); 
}); 

loginFormController.js

angular.module('sysConApp') 
.controller('LoginFormController', ['$scope', '$state', 'AuthService', 'userProfile', 
    function ($scope, $state, AuthService, userProfile) {/*Some codes*/}]); 

loginFormView.html

<form class="loginForm"> 
    <img class="login-logo" 
     src="data:image/png;base64,i..." alt="Logo SysCon"> 
    <input id="inputEmail" 
      type="email" 
      class="form-control" 
      placeholder="E-mail" 
      ng-model="username" 
      required 
      autofocus> 
    <input type="password" 
      id="inputPassword" 
      ng-model="password" 
      class="form-control" 
      placeholder="Senha" 
      required> 
    <span ng-show="loginError && loginForm.$invalid" 
      class="label label-danger"> 
     <b>Erro ao realizar login.</b> Favor tente novamente. 
    </span> 
    <button class="btn btn-lg btn-block btn-signin" 
      ng-disabled="loginForm.$invalid" 
      ng-class="{'btn-default':loginForm.$invalid,'btn-success':loginForm.$valid}" 
      ng-click="logIn()" 
      type="submit"> 
     Log in 
    </button> 
</form> 

的login.html

<div class="card card-container"> 
    <login-form></login-form> 
</div> 

回答

3

你的代碼存在的問題是你的IIFE沒有被調用過,你只是在創建函數,但從來沒有調用它。

你有這樣的:

(function() { 
//... 
}); 

而且你必須將其更改爲:

(function() { 
//... 
})(); 

全碼:

(function() { 
    angular 
    .module('sysConApp') 
    .directive('loginForm', [ 
     function() { 
     return { 
      restrict: 'E', 
      scope: {}, 
      templateUrl: 'scripts/directives/loginForm/view/loginFormView.html', 
      controller: 'LoginFormController', 
      replace: true, 
      link: function(){console.log('whoray');} 
     } 
     } 
    ]); 
})(); 
+0

再次,這麼簡單的東西,爲什麼awlays像這個。非常感謝 –

+0

通過擁有IIFE,您可以確定您不會污染全局名稱空間。您可以在[此答案](http://stackoverflow.com/a/8228308/7153181)中查看更多關於它的信息。 – Ryota