在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
What is the recommended way to use an encapsulated directive and routing within an AngularJS app?
我正试图通过AngularJs 1.5应用程序采用最佳实践。已经跟随Todd Motto和John Papa的风格指南
问题是:我的应用程序有使用ngRoute的路由。所以,这个:
function RoutingConfig($routeProvider) {
$routeProvider
.when('/route1', {
controller: 'Ctrl1 as vm',
templateUrl: 'partials/route1.html',
resolve: { myCoolService: myCoolService } // to abbreviate
})
.when('/route2', {
controller: 'Ctrl2 as vm',
templateUrl: 'partials/route2.html'
})
.otherwise({redirectTo: '/route1'}):
}
angular
.module('myApp', ['ngRoute'])
.config(RoutingConfig);
好的。到目前为止,一切都很好。
现在,让我们说,在我的Angular 2之路中,我想采用将所有内容封装在指令中方法。通过这种方式,我将使用AngularJS 1.5创建类似于的web组件
如果我遵循正确的做法,我可以为我的路由1创建一个指令,并直接为该指令定义一个控制器:
function MyCoolDirective() {
var directiveDefObj = {
controller: Ctrl1,
controllerAs: 'vm',
scope: {
data: "=",
},
bindToController: true, // isolated scope
link: linkFnc // just declared to abbreviate
};
return directiveDefObj;
}
angular
.module('myApp')
.directive('MyCoolDirective', MyCoolDirective);
那么,我应该在哪里声明控制器?在路由配置中?在每个指令中听起来有点多余。
使用您的示例,这是我如何处理指令中的控制器,如papa风格的指南
如上所述,我建议在准备角2时检查新的角1.5分量方法。https://docs.angularjs.org/guide/component
(function () {
angular
.module('AppName')
.directive('directiveName', directiveName)
.config(routeConfig);
directiveName.$inject = ['$compile'];
function directiveName($compile) {
return {
scope: {
customAttribute: '=',
},
link: directiveLink,
controller: directiveController
};
function directiveLink(scope) {
}
function directiveController($scope) {
}
}
routeConfig.$inject ['$routeProvider'];
function routeConfig($routeProvider) {
$routeProvider.when('/home', {
template: '<custom-directive></custom-directive>',
resolve: {
user: function($http) { return $http.get('...'); }
}
});
}
})();
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 在单页应用程序上进行客户端路由的正确方法是什么
- 使用ui路由器实现动态URL路由的最佳方式是什么
- ng路由不起作用.我不知道错误是什么,因为控制台中没有显示任何内容
- 将 /.json 添加到快速路由末尾的最佳方法是什么
- 在backbonej中触发路由的最佳方式是什么
- “窗口”的真正含义是什么?在Meteor.js应用中,onload '用于铁路由
- 用ember.js重新加载非动态路由模型的正确方法是什么?
- 使用Angular JS,在路由改变时关闭web套接字连接的正确方法是什么?
- 在React-Router文档中,“索引路由”中的这一段是什么意思?部分
- 在expressJS中处理路由的最佳实践是什么?
- AngularJS使用路由参数进行客户端包含的方式是什么