在我正在构建的Angular应用中的js
文件中,我想在顶部声明controller
s,service
s等,然后在下面定义它们。
我现在有这个工作,没关系。问题是,当我启动一个新文件时,我通常会复制现有文件的内容并更改函数的名称。但是,我必须经历一大堆功能名称,这很痛苦。我只是简单地更改包含这些函数的对象的名称,然后只更改
oldapp.controller
到
newapp.controller
为了更好地说明,这就是我现在拥有的
var pos__filejs_HomeApp = angular.module('ros.filejs.HomeApp', ['ui.router']);
pos_filejs_config.$inject = ['$stateProvider', '$urlRouterProvider'];
pos__filejs_HomeApp.config(pos_filejs_config);
pos_filejs_controller.$inject = ['$scope'];
pos__filejs_HomeApp.controller('ros.postjs.ctrl', pos_filejs_controller);
//----------------------------------------------------
// FUNCTIONS
//----------------------------------------------------
function pos_filejs_config($stateProvider, $urlRouterProvider){
// implementation
}
function pos_filejs_controller($scope){
//implementation
}
这是我想要的东西:
var pos__filejs_HomeApp = angular.module('ros.filejs.HomeApp', ['ui.router']);
HomeApp.config.$inject = ['$stateProvider', '$urlRouterProvider'];
pos__filejs_HomeApp.config(HomeApp.config);
HomeApp.controller.$inject = ['$scope'];
pos__filejs_HomeApp.controller('ros.postjs.ctrl', HomeApp.controller);
//----------------------------------------------------
// FUNCTIONS
//----------------------------------------------------
var HomeApp = {
config: function ($stateProvider, $urlRouterProvider){
// implementation
},
controller: function ($scope){
//implementation
}
}
这是相当简洁的,特别是随着文件越来越大,添加了更多的服务,配置。
问题是,我似乎无法将对象实现置于角度内容之下,因为对象不是“悬挂”的 - 也就是说,文件顶部对HomeApp
的引用是{{ 1}}因为undefined
只定义在较低的位置(HomeApp
不是这样的。
如何提升物体,以便我可以在文件的较高位置使用它?
答案 0 :(得分:0)
HomeApp被悬挂,但HomeApp悬挂为“未定义”。吊装不会为您定义价值。根据我的说法,您可以将代码视为
var HomeApp = undefined;
var pos__filejs_HomeApp = angular.module('ros.filejs.HomeApp', ['ui.router']);
HomeApp.config.$inject = ['$stateProvider', '$urlRouterProvider'];
//Here HomeApp is undefined, Since you haven't assign any value;
pos__filejs_HomeApp.config(HomeApp.config);
HomeApp.controller.$inject = ['$scope'];
pos__filejs_HomeApp.controller('ros.postjs.ctrl', HomeApp.controller);
//...
我不确定你为什么要写一个很难的代码 明白:-D