Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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
Javascript 角度ui路由器嵌套视图未定义_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript 角度ui路由器嵌套视图未定义

Javascript 角度ui路由器嵌套视图未定义,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我定义了一个主视图,在该主视图中,我为我的博客文章定义了一个抽象模板。该博客有两个相关视图:“列表”和“侧边栏”。有两种状态使用这种抽象,一种是“列表”是博客文章列表(其内容被截断),另一种是“列表”是单个博客文章。侧边栏只包含最近博客和流行标签的链接,并且只存在于上述两个视图中。以下是如何定义我的路线: $stateProvider.state('blog', { abstract: true, templateUrl: "partials/blog.html", co

我定义了一个主视图,在该主视图中,我为我的博客文章定义了一个抽象模板。该博客有两个相关视图:“列表”和“侧边栏”。有两种状态使用这种抽象,一种是“列表”是博客文章列表(其内容被截断),另一种是“列表”是单个博客文章。侧边栏只包含最近博客和流行标签的链接,并且只存在于上述两个视图中。以下是如何定义我的路线:

$stateProvider.state('blog', {
    abstract: true,
    templateUrl: "partials/blog.html",
    controller: "BlogController"
}).state('blog.home', {
    url: "/blog",

    views: {
        list : {
            templateUrl: "partials/blog-list.html",
            controller: "BlogPostController"
        },
        sidebar: {
            templateUrl: "partials/blog-sidebar.html",
            controller: "BlogPostController"
        }
    },
    resolve: {

    }
}).state("blog.view", {
    url: "/blog/:blogSlug",

    views: {
        list : {
            templateUrl: "partials/blog-post.html",
            controller: "BlogPostController"
        },
        sidebar: {
            templateUrl: "partials/blog-sidebar.html",
            controller: "BlogPostController"
        }
    }

})
在我的博客视图中,我有:

<div ui-view="list"></div>
<div ui-view="sidebar"></div>

一切似乎都很正常,除了在我的“列表”视图中,当我从“blog.home”切换到“blog.view”(从查看列表到查看单个博客文章)时,它会闪烁“undefined”。控制台中也会显示错误,因此它看起来好像试图呈现该模板,但没有信息,然后用信息刷新

我读了一些关于resolve的内容,但我不知道如何将信息传递给子视图,因为这些信息还不知道。我还尝试使用建议的ng-斗篷属性,但它不起作用,而且有人告诉我ui路由器不响应ng-斗篷


我处理这个问题的方法有误吗?还是有办法解决这个问题?

我现在离UIRouter有点远

一直在我自己的网站上工作写在Angular witch等东西将包含一个博客模块。。。虽然我只是在尝试将核心实现推向开源世界的最初阶段,但也许您可以从中获得一些灵感

它使用:相反,它在许多方面非常相似

无论如何,这里是博客模块的最初核心:

基本的共识是,实际上您可能不需要“侧栏”视图,相反,我有一个“根”视图,当在博客页面上填充“blog.html”模板时,该模板只包含侧栏,并有一个“内容”视图,根据活动状态推送条目列表或单个条目。

如果要在调用控制器之前等待承诺,请使用
resolve

  $stateProvider.state("post", {
    template: "<h1>{{ post.title }}</h1><div>{{ post.content }}</div>",
    url: "/post/:id",
    resolve: {
      blog: function($stateParams, $http, $timeout) {
        var postid = $stateParams.id;
        console.log("Fetching blog post: " + postid);
        var promise = $http.get('blog.json').then(function (response) {
          // simulate long delay using $timeout before returning the blog posts
          return $timeout(function() { return response.data[postid]; }, 2000);              
        });

        return promise;
      }
    },
    controller: function($scope, blog) {
      $scope.post = blog;
      console.log("Controller invoked.  Blog post: ", $scope.post);
    }
  });
$stateProvider.state(“post”{
模板:“{post.title}}{{post.content}}”,
url:“/post/:id”,
决心:{
blog:function($stateparms,$http,$timeout){
var postid=$stateParams.id;
log(“获取博客帖子:+posted”);
var promise=$http.get('blog.json')。然后(函数(响应){
//在返回日志之前,使用$timeout模拟长延迟
return$timeout(函数(){return response.data[postid];},2000);
});
回报承诺;
}
},
控制器:函数($scope,blog){
$scope.post=博客;
log(“Controller-invoked.Blog-post:,$scope.post”);
}
});

啊,是的,这是个好主意。。。这并不能解决我的问题,但这使我的代码更好:)谢谢,这很有效!我以前试过各种各样的解决办法,但都没能奏效。