angularjs - 将 $scope 变量传递给 AngularJS 中的函数

标签 angularjs

我一直在尝试创建一个通用的 function 改变 $scope 参数值的 Angular 。

我一直想知道为什么我不能将 $scope.var 作为 argument 传递给 function 例如:

webApp.controller ('VotesCtrl', function ($scope) {
    $scope.param = 42;

    change($scope.param);
    function change(contextParam) {
      contextParam = (Math.random()*100)+1;
    };
});

当我运行这个函数时,$scope.param 仍然是 42。

除此之外还有其他选择吗:

webApp.controller ('VotesCtrl', function ($scope) {
    $scope.param = 42;

    change('param');
    function change(contextParam) {
      $scope[contextParam] = (Math.random()*100)+1;
    };
});

My Plunk

最佳答案

简短的回答是“不要绑定(bind)到原始值”。参见 http://stsc3000.github.io/blog/2013/10/26/a-tale-of-frankenstein-and-binding-to-service-values-in-angular-dot-js/

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

//controllers
webApp.controller ('VotesCtrl', function ($scope) {
    $scope.param = { value: 42 };

    change($scope.param);
    function change(contextParam) {
      contextParam.value = (Math.random()*100)+1;
    };
});

关于angularjs - 将 $scope 变量传递给 AngularJS 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22510817/

相关文章:

javascript - 将具有 angularJs 变量值的对象传递给过滤器

javascript - ngModelOptions 的 angular updateOn 属性支持的完整事件列表是什么?

javascript - AngularJs - 模块已定义但仍然出现 "not available"错误

angularjs - 如何在2个 Angular 应用程序之间使用iframe进行通信?

javascript - 在带有 Angular JS 模型的 HTML 页面中设置的对象标记值在 Microsoft Edge 浏览器中不起作用

javascript - CSS 多个不同高度的左浮动元素排列在 2 列中

javascript - 缩小后的 Angular Unknown Provider

javascript - Angular 插值系统中的点(嵌套)表示法

javascript - Angular 中的 HTTP 请求

javascript - 无法验证所有嵌套子元素的长度