我测试了角度和浏览器。假设是简单而直接的死亡。只有它不是:(这是我的问题:
我的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指令?我把它们按正确的顺序排列,这应该是一个同步的东西,为什么它们不像在同步环境中那样以正确的顺序创建?
谢谢!
答案 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',
// ...