Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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 角度用户界面路由器不';没有默认状态,可以';我不能从它转变过来_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript 角度用户界面路由器不';没有默认状态,可以';我不能从它转变过来

Javascript 角度用户界面路由器不';没有默认状态,可以';我不能从它转变过来,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我发现角度ui路由器有一些问题。当我点击一个用户界面时,我收到了一条信息 "Error: Could not resolve 'X' from state '' transitionTo@http:/ 其中X是站点标题中的状态,我正试图转到该状态 我认为这意味着没有默认状态,但我不确定。无论如何,以下是我认为相关的文件部分: index.html <div class="container" ng-cloak> <a ui-sref="home"></a&

我发现角度ui路由器有一些问题。当我点击一个用户界面时,我收到了一条信息

"Error: Could not resolve 'X' from state ''
transitionTo@http:/
其中
X
站点标题中的状态,我正试图转到该状态

我认为这意味着没有默认状态,但我不确定。无论如何,以下是我认为相关的文件部分:

index.html

<div class="container" ng-cloak>
    <a ui-sref="home"></a>
    <div ui-view></div>
</div>

app.config.js

angular.module('fTA')
    .config(function($urlRouterProvider, $stateProvider) {
        $urlRouterProvider.otherwise('/');

        $stateProvider.state('home', {
            url: '/',
            template: '<p>This is home view</p>'
        });

        $stateProvider.state('login' {
            url: '/login',
            templateUrl: '/views/login.html',
            controller: 'LoginCtrl'
        });
    });
角度模块('fTA') .config(函数($urlRouterProvider,$stateProvider){ $urlRouterProvider。否则('/'); $stateProvider.state('home'{ url:“/”, 模板:“这是主视图” }); $stateProvider.state('login'{ url:“/login”, templateUrl:“/views/login.html”, 控制器:“LoginCtrl” }); }); 其中/views/login.html是我的目录中文件的路径名

我的理解是,既然
urlRouterProvider
是“/”,那么我应该在“/”中看到
这是主视图。但我没有。那么,我做了什么愚蠢的事情,以至于连硬编码的模板都不会出现。

我只是-并且只改变了一件事:在“登录”之后添加逗号

    $urlRouterProvider.otherwise('/');

    $stateProvider.state('home', {
        url: '/',
        templateUrl: 'tpl.html'
    });

 // $stateProvider.state('login' {
    $stateProvider.state('login', {
        url: '/login',
        templateUrl: 'tpl.html',
        controller: 'LoginCtrl'
    });
这一点现在正在发挥作用:

  <a ui-sref="home">home</a>
  <a ui-sref="login">login</a>

您是否尝试将状态从“/”重命名为“home”?@RadimKöhler是的,也是一样的。在这种情况下,X就是home。如果状态名称为“home”,那么
ui sref=“home”应该可以工作。无论如何,我建议使用home而不是州名中的“/”。另外,(这里真的不确定),但是你的
ng是否会包括=“”`替换div的内容并删除
@RadimKöhler我认为不会。但我只是在没有ng包含的情况下对它进行了测试,并且在测试之前只有一个主页,我得到了相同的消息。我认为有一点似乎不同,那就是templateUrl。在plunker中,您有一个ng模板。templateUrl也是相对的吗?html?这是个好地方。。我肯定会说,试试:templateUrl:'views/login.html',而不带前导的slashThanks,谢谢你的帮助。问题是我没有在index.html中包含app.config.js。我知道这是件愚蠢的事。谢谢你的帮助。