如何在多个文件中定义控制器 - AngularJs.
How to define controllers in multiple files - AngularJs
我正在尝试在单独的文件中定义控制器,但收到错误:
transactionsController not a function got undefined
文件结构
我按此顺序添加了文件1-普通.js2- 交易.js
常见.js在我定义的常见文件中
var app = angular.module("spModule", ["ngMessages", "ui.bootstrap"]);
交易.js
angular.module('spModule').controller('transactionsController',
['$scope', '$http', function ($scope, $http) {} ]
);
网页
<body ng-app="spModule" ng-controller="transactionsController">
首先,你应该去掉全局app
变量。这不是必需的。其次,您必须了解angular.module()
方法的原理。
将angular.module()
与两个参数一起使用(例如 angular.module('my-module', [])
) 将导致设置具有相应依赖项的新模块。相反,当使用angular.module('my-module')
时,相应的模块在内部查找并返回给调用方(getting)。
这意味着当您第一次定义应用程序时,您可能只创建以下文件和结构。
应用.js
angular.module('myApp', []);
第一控制器.js
angular.module('myApp').controller('FirstController', function () {});
第二控制器.js
angular.module('myApp').controller('SecondController', function () {});
如果您现在以这种特定顺序(至少 app.js 必须排在第一位)将这些文件包含在 html 文档中,那么您的应用程序可以在两个单独的文件中使用两个单独的控制器。
更多阅读材料
我可以推荐模块上的AngularJS风格指南,以获得有关此主题的更多想法。
您可以将此控制器放在单独的文件中,例如mycontroller1.js
app.controller('myController', ['$scope',function($scope)
{
$scope.myValue='hello World'
}])
同样,您可以创建新的js文件"myNewcontroller.js"并可以放置新的控制器:
app.controller('myController2', ['$scope',function($scope) { $scope.myValue='hello World' }])
希望这对您有所帮助:)干杯!!
您可以通过创建模块来执行这些操作。创建模块和相应的控制器。并将该模块注入主应用程序模块。
Transactions.js
(function() {
'use strict';
angular.module('tmodule', []);
})();
(function() {
'use strict';
angular.module('tmodule').controller('transactionsController', ['$scope', '$http',
function ($scope, $http){
}]);
})();
现在将"tmodule"注入到您的 Common.js 文件中-
var app = angular.module("spModule", ["ngMessages", "ui.bootstrap","tmodule"]);
首先加载你的公共.js。将 ng-app 指令移动到<html>
标记。将交易.js更改为:
app.controller('transactionsController', TransactionsController)
TransactionsController.$inject = ['$scope','$http']
function TransactionsController($scope, $http) {
};
只是为了好玩。让我知道会发生什么。
- 当显式定义控制器参数时,默认模型绑定器会发生异常
- 错误:Error:areq定义控制器时参数错误
- 如何在多个文件中定义控制器 - AngularJs.
- 如何使用requireJs以正确的顺序定义控制器,路由器和应用程序
- 使用自定义控制器在不同视图中共享范围
- 在路由中设置自定义控制器属性
- 尝试在单独的文件中定义控制器时出现错误:ng:areq参数错误
- 在单个模块中声明时未定义控制器
- 如何使用ui路由器在组件驱动架构中定义控制器
- 角载荷自定义控制器
- 测试角度控制器:未定义控制器
- 控制器不是一个函数,在全局定义控制器时未定义
- Angular JS指令定义——需要ngModelController和自定义控制器
- 在AngularJS中定义控制器
- ASP.. Net MVC复选框值从视图到自定义控制器方法
- AngularJS中定义控制器的两种方法
- 如何添加自定义控制器而不添加额外的层在谷歌地图
- Ember需要API;ReferenceError:未定义控制器
- Vimeo内嵌视频自定义控制器(全屏和音量控制)在media element js中不起作用
- 角度定义控制器