添加第二种状态后AngularJS路由不起作用

BoJack骑士

我正在使用ui.router。首先,当我只是设置本国状态时,一切工作正常。但是在添加了文章之后,我的路由无法正常工作。我有以下角度代码:

var app = angular.module('ibrahimsBlog', ['ui.router'])

app.config([
'$stateProvider',
'$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {

  $stateProvider

    .state('home', {
      url: '/home',
      templateUrl: '/home.html',
      controller: 'PrimaryController'
    });

    .state('articles', {
      url: '/articles/{id}',
      templateUrl: '/articles.html',
      controller: 'ArticlesController'
    });

  $urlRouterProvider.otherwise('home');
}])

app.factory('articlesFactory', [function(){
  var art = { articles: [] };
  return art;
}])

app.controller('ArticlesController', [
'$scope',
'$stateParams',
'articlesFactory',
function($scope, $stateParams, articlesFactory){
  $scope.article = articlesFactory.articles[$stateParams.id];
}]);

app.controller('PrimaryController', [
// Two Way Data Binding ist nur möglich mit scope Variablen.
'$scope',
'articlesFactory',
function($scope, articlesFactory) {

  $scope.articles = articlesFactory.articles;

  $scope.articles = [
    { title : 'foo', content : "foo", likes : 5, date : '12/15/2014' },
    { title : 'bar', content : "bar", likes : 2, date : '12/14/2014' },
    { title : 'baz', content : "baz", likes : 4, date : '12/23/2014' }
  ];

  $scope.addArticle = function() {

    if(!$scope.title || $scope.title === '') { return; }

    $scope.articles.push(
      {
        title: $scope.title,
        content: $scope.content,
        likes: 0,
        date: '12/15/2014',
        comments: [
          { author: 'foo', comment: 'bar', upvotes: 0 }
        ]
      }
    );
    $scope.title = '';
    $scope.content = '';
  }

  $scope.likeArticle = function(article) {
    article.likes += 1;
  }
}]);

这是我的html文件:

<html>

 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Ibrahims Blog</title>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
  <script src="app.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.10/angular-ui-router.js"></script>
  <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet">
  <style> .glyphicon-heart { cursor:pointer } </style>
 </head>

 <body ng-app="ibrahimsBlog">
  <div class="row">
   <div class="col-md-6 col-md-offset-3">

     <ui-view></ui-view>

     <form ng-submit="addArticle()" style="margin-top:30px;">
      <h3>Create a new article!</h3>

       <div class=form-group">
        <input type="text"
         placeholder="title"
         ng-model="title">
        </input>
       </div>

       <div class="form-group">
        <input type="text"
         placeholder="content"
         ng-model="content">
        </input>
       </div>

      <button type="submit" class="btn btn-primary">Hinzufügen</button>
     </form>

     <script type="text/ng-template" id="/home.html">
      <div class="page-header">
       <h1>Ibrahims Blog</h1>
      </div>
      <span>
      <a href="#/articles/{{ index }}">Go</a>
      </span>
     </script>

     <script type=text/ng-template" id="/articles.html">
      <div class="page-header">
       <h3> {{ article.title }} </h3>
      </div>

      <div ng-repeat="article in articles">
       <span class="glyphicon glyphicon-heart"
       ng-click="likeArticle(article)"></span>
       {{ article.title }} - "{{ article.content }}" - Likes: {{ article.likes }}, Date: {{ article.date }}
      </div>
    </script>

   </div>
  </div>
 </body>
</html>

不幸的是,我收到的所有内容都在html的一部分之后

<form ng-submit="addArticle()" style="margin-top:30px;">
 <h3>Create a new article!</h3>

 <div class=form-group">
  <input type="text"
  placeholder="title"
  ng-model="title">
  </input>
 </div>

 <div class="form-group">
  <input type="text"
  placeholder="content"
  ng-model="content">
  </input>
 </div>

 <button type="submit" class="btn btn-primary">Hinzufügen</button>
 </form>

编辑不幸的是,仍有一部分不起作用。当我使用“转到”按钮时,我看到URL的更改,但是它立即将我重定向到主页模板。在服务器上,我收到404错误。你知道为什么会这样吗?

丘布森杜布斯

我认为定义$ stateProvider时,分号放在错误的位置。您没有正确链接.state调用,因为第一个分号终止了该语句:

$stateProvider

.state('home', {
  url: '/home',
  templateUrl: '/home.html',
  controller: 'PrimaryController'
});  // <-------------------------Remove this semi-colon!

.state('articles', {
  url: '/articles/{id}',
  templateUrl: '/articles.html',
  controller: 'ArticlesController'
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的第二种标签类型不起作用?

来自分类Dev

向div添加第二种样式

来自分类Dev

CSS:圆形进度栏添加第二种颜色

来自分类Dev

向应用程序添加第二种语言的最佳方法是什么

来自分类Dev

MySQL搜索并替换第二种模式

来自分类Dev

以第二种形式使用QMediaPlayer

来自分类Dev

第二种异步任务的实现,无需等待

来自分类Dev

以第二种形式使用SerialPort

来自分类Dev

第二种物质未在辉石中显示

来自分类Dev

从第二种形式填充DataGridView

来自分类Dev

以第二种形式访问richtextbox

来自分类Dev

MySQL搜索并替换第二种模式

来自分类Dev

MVC SqlQuery和第二种

来自分类Dev

无法加载第二种形式的C#

来自分类Dev

没有JS的第二种形式目标?

来自分类Dev

从第二种形式传递第二个参数?

来自分类Dev

当在C#.net中单击第二种形式的按钮时,如何从第二种中获取主要形式的字符串数据?

来自分类Dev

一种形式关闭-第二种形式更新DataGridView

来自分类Dev

根据第一种形式的结果显示第二种形式

来自分类Dev

为什么JavaScript在第二种情况下不查找全局范围

来自分类Dev

使用ifndef和||进行条件编译 没有第二种情况

来自分类Dev

PyQt类不适用于第二种用法

来自分类Dev

vb。净等待第二种形式关闭,然后继续

来自分类Dev

Config.xml中的Magento块类重写-第二种猜测我的方法

来自分类Dev

VBA中的斯特林数字第二种

来自分类Dev

runge kutta第二种方法的python代码是什么?

来自分类Dev

正则表达式的第二种模式不替换撇号

来自分类Dev

正则表达式认为我的第二种选择无效

来自分类Dev

在第二种情况下无法理解输出

Related 相关文章

热门标签

归档