Angular ui-view(UI-Router)不呈现模板 - 包括plunker

时间:2016-04-26 23:04:12

标签: javascript angularjs angular-ui-router

问题背景:

我第一次使用AngulaJS的UI路由器在我的应用程序中创建两个视图。

问题:

Plunker链接: https://plnkr.co/edit/2XAKa6mDCUyzyOPz2CNK

我觉得我在这里缺少一些简单但我无法获得任何路线来渲染app.js中设置的指定html模板。

最终我希望在点击home.html(search())的提交功能时呈现Update.html模板,但首先我需要能够实际呈现我目前无法实现的单个视图。

我希望路线能够在主页上呈现home.html页面,但不会:

非常感谢任何帮助排序。

app.js:

 angular
  .module('app', [
    'ui.router'
  ])
  .config(['$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $stateProvider) {
    $urlRouterProvider.otherwise('/home');
    $stateProvider
      .state('home', {
        url: '/',
        templateUrl: 'home.html',
        controller: 'HomeController'
      })
      .state('update', {
        url: '/update',
        templateUrl: 'Update.html',
        controller: 'UpdateController'
      })
  }])

1 个答案:

答案 0 :(得分:3)

简要地看一下你的plunker,看起来你的控制器文件正在创建具有相同名称的新角度应用程序。它们相互重叠,因此.config()块在最终应用程序中不存在。我更新了这个plunker中的控制器文件,它似乎正在渲染第一个ui视图:

https://plnkr.co/edit/cdpWWOaBJWL3dONtIXzv?p=preview

请注意,在控制器文件中,angular.module('app')不再具有第二个参数['ui-bootstrap'],这导致为每个控制器文件创建一个新的角度应用程序。请在angular docs

中查看
  

请注意,使用angular.module(' myModule',[])将创建模块myModule并覆盖任何名为myModule的现有模块。使用angular.module(' myModule')来检索现有模块。

希望这有帮助!