0

我正在尝试渲染子视图。但是它没有显示,这是下面的代码示例。我看到的大多数示例都将整个状态模板放在一个模板中;但是我在不同的模板中有几个视图,它们组成了每个状态模板。

.state({
          name: 'search',
          url: '/x',
          abstract: true,
          views: {
            'searchBar': {
              templateUrl: "template/template.html",
              controller: "searchBar"
            } 
          }
        })
        .state({
          name: 'search.final',
          url: '^/details', 
          params: {
            Data: "hello World"
          },
          views: {
            'dashb': {
              templateUrl: 'template/dashb.html'
            },
           'sidebar': {
              templateUrl: 'template/sidebar.html'
            },
          }

然后我的 index.html 如下

<div>
    <div class="row">
      <div class="col-lg-3">
        <div ui-view="searchBar"></div>
        <br>
        <div ui-view="sidebar"></div> 
        <br>
      </div>
      <div class="col-lg-9" ui-view="dashb"></div>
    </div>
  </div>

我在 searchBartemplate <ui-view></ui-view> 中有要插入的子视图,这意味着 sideBar 和 dashb

在控制器中我有这个:

$state.go("search.final" , {Data:"Byee"})

但是我没有呈现子视图..任何帮助表示赞赏。谢谢

4

1 回答 1

0

我想到了。我们需要@ 在子视图的视图名称末尾附加。:)

.state({
          name: 'search',
          url: '/x',
          abstract: true,
          views: {
            'searchBar': {
              templateUrl: "template/template.html",
              controller: "searchBar"
            } 
          }
        })
        .state({
          name: 'search.final',
          url: '^/details', 
          params: {
            Data: "hello World"
          },
          views: {
            'dashb@': {
              templateUrl: 'template/dashb.html'
            },
           'sidebar@': {
              templateUrl: 'template/sidebar.html'
            },
          }
于 2018-03-25T16:08:55.160 回答