角度指令不从JS FIle加载

时间:2014-06-19 15:18:15

标签: angularjs angularjs-directive

我的指令未从.js文件加载。您能否通过以下信息判断为何该指令未从文件加载?

我的app.js文件有

var app = angular.module('app', ['myDirectives']);

我有一个名为mydirective.js的指令.js文件

在这个文件中我有

(function () {
    'use strict';
    var app = angular.module('myDirectives', []);



  app.directive('myMonth', function () {
        return {
            restrict: 'AE',
            transclude: true,
            //priority: 1000,
            //scope: {
            //    month: '=month'
            //},
            template: '<select class="input-large" ng-model="month">' +
                '<option value="1">January</option>' +
                '<option value="2">February</option>' +
                '<option value="3">March</option>' +
                '<option value="4">April</option>' +
                '<option value="5">May</option>' +
                '<option value="6">June</option>' +
                '<option value="7">July</option>' +
                '<option value="8">August</option>' +
                '<option value="9">September</option>' +
                '<option value="10">October</option>' +
                '<option value="11">November</option>' +
                '<option value="12">December</option>' +
                '</select>',
            controller: function ($scope) {

            }
        };
    });
});

在我的index.html文件中

<my-month></my-month>

你能告诉我为什么这个指令不会从mydirective.js文件加载但是它是从控制器文件加载的吗?感谢

2 个答案:

答案 0 :(得分:2)

看起来你的语法有些错误。

<强>首先

var app = angular.module('app', ['myDirectives']);

您不需要为指令执行此操作。我不是Angular JS的专家,所以这可能是“正确”的方法,而不是我通常最终做到的。

下一步:

template: '<select class="input-large" ng-model="month">' +

应该是:

template: [ '<select class="input-large" ng-model="month">',

您还需要确保将文件包含在index.html的某个地方

这是一个有效的Plunker:http://plnkr.co/edit/xTthqwe2Yw7e9kO05ios

答案 1 :(得分:2)

在app.js文件中,更改

var app = angular.module('app', ['myDirectives']);

var app = angular.module('app', []);

在你的mydirective.js中,删除此

var app = angular.module('myDirectives', []);

否则你宣布你的应用两次(一次在app.js中,然后再在mydirective.js中)。