通过ng-click将数值传递给变量

时间:2016-04-08 13:20:15

标签: angularjs

嘿伙计我有以下控制器:

(function() {
  'use strict';

  angular
    .module('app.landing')
    .controller('LandingController', LandingController);

    function LandingController($http) {

      var vm = this;
      vm.quantity = 9;
      $http.get('api/getarticles').
      success(function(data, status, headers, config) {
      vm.articles = data;
      });
      $http.get('api/getFeaturedArticles').
      success(function(data, status, headers, config) {
      vm.featuredArticles = data;
      });
      }
})();

在我看来,我有这个按钮

<button ng-click="vm.quantity + 3">Add</button>

我正在尝试在我的视图上获取按钮,将数值3添加到控制器中的vm.quantity变量中。

但是,如果按下前端的按钮,则值3不会添加到vm.quantity变量中。

知道为什么这可能不起作用?

2 个答案:

答案 0 :(得分:4)

你的变量没有像vm.quantity + 3那样改变,结果不存储在任何地方......你应该这样做:

<button ng-click="vm.quantity = vm.quantity + 3">Add</button>

或者

<button ng-click="addValue(3)">Add</button>

你控制器里的位置:

$scope.addValue = function(value) {
    vm.quantity += value;
};

答案 1 :(得分:1)

你可以尝试两件事:要么像{{vm.quantity + 3}}这样做,以便Angular将评估该表达式(现在你缺少大括号)或第二:添加到ng-click一个函数像增量一样,在控制器中做实际的增加。

希望有所帮助