当我在angularJS中按下按钮时如何更改变量?

时间:2016-05-23 12:18:58

标签: javascript angularjs

如何通过使用Angular按钮来更改视图中的某个变量?

例如视图:

<div id="someDiv" ng-app="myApp" ng-controller="myCtrl">
  <p ng-bind="firstname"></p>
  <button type="button" ng-click="changeValue('Joe')"></button>
</div>

脚本:

var app = angular.module('myApp', []);
        app.controller("myCtrl", function($scope){
        $scope.firstname = "Johny";

        $scope.changeValue= function(param) {  
        $scope.firstname = param;
        }
        });

我希望当我按下按钮时,而Johny将成为Joe(如参数中所示)。 当我点击按钮时没有任何事情发生

@EDIT 好的,我知道问题出在哪里。这在我的主要div工作正常。然而,它并不适用于我的第二个div:

我通过点击其他按钮在下面运行脚本,这个脚本改变了我的div

 function show(div_id){ //div_id is `someDiv`
        document.getElementById('main_place').innerHTML = document.getElementById(div_id).innerHTML; 
        }

但是为什么角度脚本不适用于这个div?

4 个答案:

答案 0 :(得分:0)

添加

$scope.changeValue = function(newVal) {
   $scope.firstname = newVal;
}

在html上放<p>{{firstname}}<p>

答案 1 :(得分:0)

在控制器中试试这个:

$scope.changeValue = function(changeName)
{
$scope.firstname = changeName;
};

在视图中:

<p>{{firstname}}</p>

答案 2 :(得分:0)

请检查一下。

HTML:

<div id="someDiv" ng-app="myApp" ng-controller="myCtrl">
  <p ng-bind="firstname"></p>
  <button type="button" ng-click="changeValue('Joe')"></button>
</div>

JS:

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

myApp.controller("myCtrl", function($scope){
  $scope.firstname = "Johny";

  $scope.changeValue= function(param) {  
    $scope.firstname = param;
  }
});

我为您的问题创建了一个工作示例:

http://jsfiddle.net/halirgb/Lvc0u55v/

答案 3 :(得分:0)

这是一个工作示例

    var values = [];

    snapshot.forEach(function(childSnapshot) {

        childSnapshot.forEach(function(grandchildSnapshot) {
            values.push(grandchildSnapshot);

        })
     })
     promise.resolve(values)

https://plnkr.co/edit/dz553Og6E83wx0LF6NHT?p=preview