Angular,browserify,指令控制器不可用

时间:2015-04-06 21:11:27

标签: angularjs browserify

我测试了角度和浏览器。假设是简单而直接的死亡。只有它不是:(这是我的问题:

我的src文件夹中有一个dir结构,如下所示:

src/
 js/
  controller/
   index.js
   controller1.js
   ......
  directive/
    index.js
    directive1.js
    directive2.js

我的指令/ index.js如下所示:

'use strict';

var app = angular.module('seisTools');
app.directive('fillController', require('./fill_controller'));
app.directive('fill', require('./fill'));

我的问题指令看起来像这样(fill.js):

'use strict';
module.exports = function(){
    return{
        restrict: 'A',
        scope: {},
        require: '^fillController',
        link: function (scope, element, attr, ctrl) {
            var parent = $(element).parents('[fill]').get(0);
            var config = JSON.parse(attr.fill);
            ctrl.manageLayout(element, parent, config);
        }
    }
}

fillController指令如下所示:

'use strict';

module.exports = function($window, $timeout){
    return {
        controller: function($scope){
            var me = this;
            me.manageElement = function(child, parent, config){
                console.log('managing an element');
            }
        }
    }
}

它需要fillController,但browserify并不能使它可用。如何让browserify使这个fillController可用于我的fill指令?我把它们按正确的顺序排列,这应该是一个同步的东西,为什么它们不像在同步环境中那样以正确的顺序创建?

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须在HTML the require option中使用这两个指令才能按照您的意愿行事。我推荐这样的东西。

HTML:

<div fill fill-controller></div>
<!-- OR -->
<div fill-controller>
  <div fill></div>
</div>

fill.js:

// ...
// This will instruct the directive to look for the fillController directive
// on the same element the fill directive is on or a parent of it
require: '^fillController',
// ...