我正在练习DI并尝试在angular.js中进行模块化。我搜索了一些教程并尝试重新编码。
我最初的计划如下(我可能有错误的概念,请帮助指出):
ng-app:myapp;
带有工厂服务的“finance2”模块:“currencyConverter”;
angular.module('finance2', []).factory('currencyConverter', function() {
带控制器的模块“ctrl1”:InvoiceController。然后我将服务模块注入其中
angular.module('ctrl1',['finance2']).controller('InvoiceController', ['currencyConverter', '$scope',function(currencyConverter,$scope) {
var app = angular.module("switchableGrid",['ctrl1']);
这是完整的代码,jsfiddle.net / c7fF3 / 1 /,
但是没有任何事情发生,有人会给我一个暗示吗?非常感谢。
答案 0 :(得分:1)
您使用的是ng-app="myapp"
,但您的应用实际上是一个名为switchableGrid
将标记更改为
<body ng-app="switchableGrid">
或将脚本更改为
angular.module('myapp', ['ctrl1']);
答案 1 :(得分:0)
对于你的小提琴,我将框架和扩展部分的第二个下拉列表更改为“no-wrap in body”,我看到没有记录异常。
此外,如果您使用 controller作为语法,则应使用
this.currencies = currencyConverter.currencies;
而不是
$scope.currencies = currencyConverter.currencies;
答案 2 :(得分:0)
试试这种方式
angular.module('app', [])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/xxx', { templateUrl: 'app/xxx.html', controller: 'xxxCtrl' })
}])
.factory(
'currencyConverter',
function ($resource) {
return $resource(URL);
})
.controller('xxxCtrl', ['$scope', '$http', '$routeParams', '$route', function ($scope, $http, $routeParams, $route) {
$scope.currencies = currencyConverter.currencies;
}])