AngularJs - 在js指令中链接js代码

时间:2015-09-05 13:06:02

标签: javascript angularjs

我有一个非常精细的指令,用于构建我的angularjs应用程序。我想打破代码来分离JS文件,然后将它们包含在1个JS指令文件中。例如,我没有将所有代码放在一个js文件中,而是:

myapp-directive-http-request.js
myapp-directive-init.js
myapp-directive-event.js
myapp-directive-function.js

然后myapp-directive.js将链接到上述所有文件。

我在PHP中看到与include(" FILEPATH")类似的功能,或者在angularjs html视图中查看ng-include。是否可以在指令部分执行此javascript或angularjs?

我的指令代码如下:

angular.module("myApp", [])
.directive("myApp",['$http', function($http){

return{
            link: function(scope,element,attrs){ // normal variables rather than actual $scope, that is the scope data is passed into scope
                //all functions, init etc code is here

            },//return
            restrict:"A", //assign as attribute only ie <div my-modal> Content </div>
            replace:true,//replaces div with element, note if this is the case must all template must be wrapped within one root element. eg button is within ul otherwise get an error. 


            templateUrl:"partials/myapp/myapp.html",//template
            transclude:true, //incorporate additional data within
            scope:{
            } //If on this should mean the html input is not binded to custom directive
        }//return
}])

1 个答案:

答案 0 :(得分:0)

使用您选择的任何构建系统。 Webpack,RequireJS,Browserify,JSPM - 所有这些都能胜任。 require('...')函数(在JSPM的情况下为ES2015-fashioned System.import)将完成工作。

在这种情况下,不建议异步加载模块(而不是构建软件包),因为指令编译过程不会等待它们被加载。

myapp-directive-http-request.js
myapp-directive-init.js
myapp-directive-event.js
myapp-directive-function.js

看起来不是一个很好的分手。胖指令或控制器通常是设计不良的指标。通常,您可能希望将与DOM或范围无关的所有内容与服务分开,并保持指令不变。从一个指令制定一些指令也可能是有益的。