2016-10-04 51 views
1

我正在尝试学习AngularJs并编写一些丢弃代码。我试图创建一个对象书签,并将其推入到一个数组中。如何正确提交一个对象到数组中使用Angular Js

HTML:

<h2>Create a new bookmark </h2> 
       <form class="form-group" ng-submit="createBookmark(newBookmark)" novalidate> 
        <!--Title--> 
        <h4>Bookmark Title</h4> 
        <input type="text" ng-model="newBookmark.title"> 
        <!--Url-->   
        <h4>Bookmark Url</h4> 
        <input type="text" ng-model="newBookmark.url"> 
        <!--Submit--> 
        <button type="submit" href="#" class="btn btn-primary" id="crForm" ng-click="stopCreating()">Save</button> 
       </form> 

JS:

function resetCreateForm(){ 
     $scope.newBookmark = { 
      title : '', 
      url : '', 
      category : $scope.currentCategory.name 
     }; 
    } 

    function createBookmark(bookmark) { 
     bookmark.id = $scope.bookmarks.length; 
     bookmark.category = $scope.currentCategory.name; 
     $scope.bookmarks.push(bookmark); 

     resetCreateForm(); 
    } 
    $scope.createBookmark = createBookmark; 
    $scope.resetCreateForm = resetCreateForm; 

对象:

$scope.bookmarks = [ 
     {id: 0, title: "Title1", url: "www.Title1.com", category: "Development"}, 
     {id: 1, title: "Title2", url: "www.Title2.com", category: "Development"} 

];

模块和控制器:

var app = angular.module('list',[]); 

app.controller('listController', function($scope){ 

出于某种原因,这是行不通的,到目前为止,我认为这从角版本变化的,但我无法找到一种方法,使其工作。

回答

1

您必须绑定resetCreateForm & createBookmark控制器的$scope,以便您可以从视图中访问它们。

//place this inside your controller 
$scope.resetCreateForm = resetCreateForm; 
$scope.createBookmark= createBookmark; 

你也不必呼吁ng-click功能,按钮ng-submit的点击将被调用。删除ng-click="stopCreating()"

+0

嗨,谢谢你的答案。我忘了将代码添加到帖子中的代码中。我已经这样做了,但它仍然无效。 –

+0

所以我删除了ng-click,它工作。非常感谢! –

+0

@MarinTudor这就是我在我的答案中要求做:)很高兴帮助你,谢谢:) –

相关问题