Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用ui路由器定义控制器_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs 使用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', {

我正在ES6中使用Angular js创建web应用程序。我刚开始学英语。我有以下问题,我不能从互联网上的资源了解太多

1) 我使用ui路由器进行基于状态的路由。我的控制器中有以下代码

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
]);