Angularjs 使用ui路由器定义控制器
我正在ES6中使用Angular js创建web应用程序。我刚开始学英语。我有以下问题,我不能从互联网上的资源了解太多 1) 我使用ui路由器进行基于状态的路由。我的控制器中有以下代码Angularjs 使用ui路由器定义控制器,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在ES6中使用Angular js创建web应用程序。我刚开始学英语。我有以下问题,我不能从互联网上的资源了解太多 1) 我使用ui路由器进行基于状态的路由。我的控制器中有以下代码 myApp.config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise('/home); $stateProvider .state('contact', {
myApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home);
$stateProvider
.state('contact', {
url: '/contact',
templateUrl: 'contact.html',
controller: myContactController
});
};
Contact.html:
<div ng-controller=”myContactController”>
….
</div>
subApp1/index.js
Export default function(){
Angular. module(“subApp1”,[]);
};
问题:
a) 这是将子模块依赖项注入基本模块的正确方法吗?如果不是,将模块依赖项注入基本模块的最佳方法是什么?
b) 如果我能得到最好的链接,以基本方式理解angular js中的依赖注入和不同作用域,我将不胜感激。1.a)不,你不应该。如果这样做,您将有两个控制器实例
myApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home);
$stateProvider
.state('contact', {
url: '/contact',
templateUrl: 'contact.html',
controller: myContactController
});
};
2.a)不。首先,您不需要将一个模块“注入”到另一个模块中:一个模块依赖于另一个模块,仅此而已。这与依赖注入无关。其语法是
angular.module('myapp', ['subApp1']);
也就是说,数组的元素必须是所依赖模块的名称。当然,这些模块本身必须使用
2.b)
我已经在js中指定了处于我的状态的控制器。我是否也需要在视图中使用ng控制器指定控制器?区别是什么?为什么有必要
您不需要在HTML中使用ngController
。路由器将获取HTML模板并使用指定的控制器编译它
我的应用程序有一个基本模块
通过名称指定从属模块,因此您的设置可能如下所示(请注意,如何导出角度模块的name
属性):
然后
import subapp1 from './subApp1/index';
import subapp2 from './subApp2/index';
angular.module('myapp', [
subapp1,
subapp2
]);
export default angular.module('subApp1', [])
.factory('someService', semeService) // For example, attach some module service
.directive('someDirective', someDirective) // ... or some components
.name;
import subapp1 from './subApp1/index';
import subapp2 from './subApp2/index';
angular.module('myapp', [
subapp1,
subapp2
]);