【问题标题】:My Submitpost function isn't working我的 Submitpost 功能不起作用
【发布时间】:2015-07-26 14:18:39
【问题描述】:

第一次使用 angularJs,我正在关注 AngularJS reddit 克隆教程,但我不知道我哪里出错了。当我单击提交按钮时,没有任何反应。 https://github.com/Eibonic/AngularJS-reddit/tree/master/app

这是 nav.js 控制器

    'use strict';

app.controller('NavCtrl', function ($scope, $location, Post, Auth) 
{
$scope.post = {url: 'http://', title: ''};

$scope.submitPost = function () 
{
    Post.create($scope.post).then(function (ref) 
    {
        $scope.post = {url: 'http://', title: ''};
        $location.path('/posts/' + ref.name());
        });
        };

});

这是 nav.html 视图文件。

   <nav class="navbar navbar-default" role="navigation">
   <!-- Brand and toggle get grouped for better mobile display -->
  <div class="navbar-header">
   <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
  <span class="sr-only">Toggle navigation</span>
  <span class="icon-bar"></span>
  <span class="icon-bar"></span>
  <span class="icon-bar"></span>
   </button>
    <a class="navbar-brand" href="#">ang-news</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div ng-controller="NavCtrl" class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
    <form class="navbar-form navbar-left" role="search" ng-submit="submitPost()">
  <div class="form-group">
    <input type="text" class="form-control" placeholder="Title" ng-model="post.title">
  </div>
  <div class="form-group">
  <input type="text" class="form-control" placeholder="Link"      ng-model="post.url">
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>
 </div><!-- /.navbar-collapse -->
</nav>

【问题讨论】:

    标签: javascript jquery angularjs firebase


    【解决方案1】:

    我看了你链接的github项目,有两个问题;我通过运行项目并在 Chrome 中打开调试控制台找到了它们。

    Unknown provider: AuthProvider &lt;- Auth &lt;- NavCtrl 在英语中,这意味着您尝试将Auth 提供程序(它不存在)作为依赖项注入到 NavCtrl 中。这是 nav.js 的第 3 行。您实际上还没有使用 Auth 服务,因此只需从函数声明中删除它即可修复它。它应该是这样的:

    app.controller('NavCtrl', function ($scope, $location, Post)
    

    一旦您到达教程中创建身份验证提供程序的位置,您就可以在此处注入它。

    第二个错误是GET http://localhost:9000/scrips/controllers/postview.js 404

    这意味着 HTML 尝试加载 postview.js 脚本,但找不到它。加载脚本时,第 89 行的 index.html 中有一个错字。应该是http://localhost:9000/scripts/controllers/postview.js(“脚本”中缺少“t”)

    进行这两项更改后,它现在似乎工作正常。

    【讨论】:

    • 谢谢你解决了所有问题,还有关于如何让我的问题在下次更好的建议吗?我想让回答它们变得不那么麻烦。
    • 很高兴我能帮上忙!有些事情你可以做得更好:包括在调试控制台中显示的任何错误消息。 (您可以通过右键单击页面,选择“检查元素”并单击弹出窗口的“控制台”选项卡来访问它)。将代码格式化为更具可读性也会对您有所帮助。格式化使您(和其他人)更容易阅读您的代码。
    猜你喜欢
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2022-01-24
    • 2022-01-24
    • 2020-09-23
    • 2022-01-13
    相关资源
    最近更新 更多