有没有办法让我将引用的对象推送到数组中?

时间:2016-03-30 21:28:23

标签: angularjs angularjs-directive angularjs-scope

我希望在单击时将每个对象推送到数组中。我能够获得每个单独对象的引用,但我无法将对象推入数组。它告诉我push不是一个函数。我花了很多时间试图解决这个问题。有人能指出我正确的方向吗?

angular.module('app', []);

angular.module('app').controller("MainController", function() {
  var vm = this;
  vm.ordered = {};

  vm.menu = [{
    title: 'Pizza',
    type: 'entree',
    favorite: true,
    price: 10
  }, {
    title: 'Tacos',
    type: 'entree',
    favorite: false,
    price: 5
  }, {
    title: 'Onion Rings',
    type: 'app',
    favorite: false,
    price: 2
  }, {
    title: 'Ice Cream',
    type: 'dessert',
    favorite: false,
    price: 11
  }, {
    title: 'Mac n Cheese',
    type: 'app',
    favorite: false,
    price: 7
  }, {
    title: 'Salad',
    type: 'salad',
    favorite: true,
    price: 4
  }];

}).directive('section', function() {
  return {
    restrict: 'E',
    link: function(scope, element) {
      scope.ordered = {};
      element.bind('click', function(event) {
        console.log(scope.item);
        scope.ordered.push(scope.item);
      });

    }
  };
});;
.left {

  float: left;

  width: 50%;

}

.right {

  float: left;

  width: 50%;

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="app" ng-controller="MainController as main">

  <div class="left">
    <h2>Lists One</h2>
    <section id="{{item.id}}" ng-repeat="item in main.menu | filter:main.searchInput | orderBy:main.order.key:main.order.reverse">

      <strong>{{item.title}} </strong>
      <span>$ {{item.price}}</span>

    </section>
  </div>

  <div class="right">
    <h2>Lists Two</h2>
    <section id="{{item.id}}" ng-repeat="item in main.ordered | filter:main.searchInput | orderBy:main.order.key:main.order.reverse">

      <strong>{{item.title}} </strong>
      <span>$ {{item.price}}</span>

    </section>
  </div>

1 个答案:

答案 0 :(得分:2)

scope.ordered = {};更改为scope.ordered = [];