我正在使用ES6中的Angular js创建Web应用程序。我刚开始学习角度。我有以下问题,我从互联网上的资源中无法理解。
1)我正在使用ui-router进行基于状态的路由。我的控制器中有以下代码
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>
问题:
a)我在js中指定了我的状态控制器。我是否还需要在视图中使用ng-controller指定控制器?有什么区别以及为什么有必要?
2)我的应用程序有一个基本模块。
基础模块 - Index.js:
import subapp1 from ‘./subApp1/index’;
angular.module(“myapp”,[subapp1]);
subApp1 / index.js
Export default function(){
Angular. module(“subApp1”,[]);
};
问题: a)这是将子模块依赖注入基础模块的正确方法吗?如果没有哪种方法将模块依赖注入基础模块? b)如果我能够获得最佳链接,以基本方式理解角度js中的依赖注入和不同范围,我将不胜感激。
答案 0 :(得分:2)
我在js中指定了我的状态控制器。我是否还需要在视图中使用ng-controller指定控制器?有什么区别以及为什么有必要?
您不需要在HTML中使用ngController
。路由器将获取HTML模板并使用指定的控制器进行编译。
我的应用程序有一个基本模块...
您可以通过名称指定依赖模块,因此您的设置可能如下所示(注意,如何导出Angular模块的name
属性):
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
]);
答案 1 :(得分:1)
1.a)不,你不应该。如果这样做,您将拥有两个控制器实例
2.a)没有。首先,你不要注射&#34;一个模块进入另一个模块:一个模块依赖于另一个模块,这是所有模块。这与依赖注入无关。它的语法是
angular.module('myapp', ['subApp1']);
即。数组的元素必须是您所依赖的模块的名称。当然,这些模块本身必须使用
来定义(之前或之后,它并不重要) angular.module('subApp1', []);