2017-06-17 47 views
0

如何將一個模塊用於多個控制器,當這些控制器位於不同的js文件中時。如何將一個模塊用於多個控制器

我有3個js文件 1. app.js 2.登錄。 JS 3. Register.js

app.js

var app = angular.module("myApp", ['ngRoute']); 
app.config(function ($routeProvider) { 
    $routeProvider.when('/', { 
    templateUrl: 'Login/login.html', 
    controller: 'myCtrl' 
}) 

.when('/register', { 
    templateUrl: 'Register/register.html', 
    controller: 'registerCntrl' 
}) 

})

Login.js

var app = angular.module("myApp"); 
    app.controller("myCtrl", function ($scope) { 

$scope.login = function (data) { 
    console.log(data); 
    if (data.name == 'pinku' && data.pswd == '1234') { 
     console.log("Login Successfull"); 
    } else { 
     console.log("Not successful"); 
    } 
}; 
$scope.moreInfo = function() { 
    alert("M in more info"); 
} 

});

Register.js

var app = angular.module("myApp"); 
    app.controller("registerCntrl", function ($scope) { 

});

我已經在我的app.js文件中定義了mymodule現在我想將我的控制器註冊到該模塊,並且控制器在不同的類中。我在app.js中注入了ng-Route。在登錄米使用已定義的模塊,但m到處錯誤

「未能實例模塊ngRoute原因是:」提前

回答

1

謝謝如果你加載app.js第一,在其他文件中,你可以注入你的模塊如

app = angular.module("myApp"); 

請注意,我從函數調用中省略了[]。這意味着您正在嘗試獲取已定義的模塊。

+0

如何確保app.js首先被加載? –

1

你可以喜歡做:

angular.module("myApp") 
.controller(...) 

兩個控制器,而不是在這裏寫變量

注:app.js前應任何控制器加載此工作。

這是可以做到的方法之一:

<html ng-app="myApp"> 
<head> 
    <title></title> 
</head> 
<body> 

    <script type="text/javascript" src="app.js"></script> 
    <script type="text/javascript" src="controller1.js"></script> 
    <script type="text/javascript" src="controller2.js"></script> 
</body> 
</html> 

除了這個,你也可以使用一些任務運動員一樣一飲而盡或咕嚕自動做到這一點。

+0

如何確保app.js首先被加載? –

+0

如果您手動將它插入到您的html中,您應該首先將其包含在腳本標記中,然後將其包含在其他控制器的腳本標記中。這和在html中加載不同的腳本文件一樣好。無論你首先提到哪個將首先加載,請檢查我的回答 –

+0

它工作了謝謝。 –

相關問題