(Angular)简单的嵌套视图不起作用

时间:2017-03-20 16:30:43

标签: angularjs angular-ui-router pug livescript nested-views

我正在研究Angular,而且我被ui-router困住了。
这是代码。我正在使用PUG& Livescript,我怀疑我是否因为这两个而有问题。

我的代码类似于stackoverflow中的一些答案,但我无法使其工作。 create.pug未显示。

main.pug是index.pug的子元素 create.pug是main.pug的孩子

create.pug - > main.pug - > index.pug

版本:

angular -> 1.6.3
angular-ui-router -> 0.4.2

index.pug

html(ng-app="app.main")
  head ...
  body
    div(ui-view)

main.pug

md-subheader
  h1 To Do

md-divider
section(ui-view)

create.pug

md-input-container
  label Title
  input(type="test" ng-model="app.new_task" ng-keypress="createTask($event)")

main.ls

MainController = ($scope) !->

angular
  .module 'app.main'
  .controller 'MainController', MainController

create.ls

TaskCreateController = ($scope) !->
  app = @

  app.taskList = []

  $scope.createTask = ($event) !->
    if $event.keyCode !== 13 || !app.new_task
      return

  app.taskList.push app.new_task
  app.new_task = ''

  angular
    .module 'app.main'
    .controller 'TaskCreateController', TaskCreateController

router.ls

routeHelper = ($locationProvider, $stateProvider, $urlRouterProvider) !->
this.$get = ($state) ->
  'configureStates': (states) !->
      Object
        .entries states
        .forEach ([name, config]) !->
          $stateProvider.state name, config

$locationProvider.html5Mode false
$urlRouterProvider.otherwise '/'

angular
  .module 'app.main'
  .provider 'routeHelper', routeHelper

routes.ls

setupRoutes = (routeHelper) !->
  routeHelper.configureStates do
    'home':
      'url': '/'
      'templateUrl': 'modules/main/main.html'
      'controller': 'MainController'
      'controllerAs': 'app'

    'home.create':
      'url': '/create'
      'templateUrl': 'modules/task/create/create.html'
      'controller': 'TaskCreateController'
      'controllerAs': 'app'

angular
  .module 'app.main'
  .run setupRoutes

1 个答案:

答案 0 :(得分:0)

mmh我尝试在这里添加缩进级别:

head(ng-app="app.main") ...
body
  div(ui-view)

head(ng-app="app.main") ...
  body
    div(ui-view)

或者更确切地说

html(ng-app="app.main")
  head
  body