关于角度中的DI的一些问题

时间:2014-02-21 05:38:56

标签: javascript angularjs

我正在练习DI并尝试在angular.js中进行模块化。我搜索了一些教程并尝试重新编码。

我最初的计划如下(我可能有错误的概念,请帮助指出):

  1. ng-app:myapp;

    带有工厂服务的“finance2”模块:“currencyConverter”;

    angular.module('finance2', []).factory('currencyConverter', function() {

    带控制器的模块“ctrl1”:InvoiceController。然后我将服务模块注入其中

    angular.module('ctrl1',['finance2']).controller('InvoiceController', ['currencyConverter', '$scope',function(currencyConverter,$scope) {
  2. 然后我将控制器模块注入应用程序
     var app = angular.module("switchableGrid",['ctrl1']);
  3. 这是完整的代码,jsfiddle.net / c7fF3 / 1 /,

    但是没有任何事情发生,有人会给我一个暗示吗?非常感谢。

3 个答案:

答案 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;
    }])