当前位置: 首页 > 面试题库 >

将变量传递给AngularJS控制器,最佳做法是?

秦渝
2023-03-14
问题内容

我是 AngularJS的 新手,
并且喜欢到目前为止所看到的内容,尤其是模型/视图绑定。我想利用它来构建一个简单的“添加到购物篮”功能。

到目前为止,这是我的控制器:

function BasketController($scope) {
    $scope.products = [];

    $scope.AddToBasket = function (Id, name, price, image) {

        ...

    };
}

这是我的HTML:

<a ng-click="AddToBasket('237', 'Laptop', '499.95', '237.png')">Add to basket</a>

现在这可行,但是我高度怀疑这是在模型中创建新产品对象的正确方法。但是,这正是我完全缺乏AngularJS经验的地方。

如果不是这样做的话,什么是最佳实践?


问题答案:

您可以创建购物篮服务。通常在JS中,您使用对象而不是许多参数。

这是一个示例:http :
//jsfiddle.net/2MbZY/

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

app.factory('basket', function() {
    var items = [];
    var myBasketService = {};

    myBasketService.addItem = function(item) {
        items.push(item);
    };
    myBasketService.removeItem = function(item) {
        var index = items.indexOf(item);
        items.splice(index, 1);
    };
    myBasketService.items = function() {
        return items;
    };

    return myBasketService;
});

function MyCtrl($scope, basket) {
    $scope.newItem = {};
    $scope.basket = basket;    
}


 类似资料:
  • 问题内容: 如何从JavaScript侦听器传递变量(id): 到ruby-on-rails控制器中的实例变量(@foo) 在视图(窗体)中正确创建关系: 谢谢! 问题答案: 如果我正确理解,执行此操作的一个好方法是使用AJAX将ID提交给您的操作,然后使用该操作来呈现表单。 您的javascript中看起来像这样: 您需要一条路线: 然后,在操作中,您可以获取该ID并呈现如下形式的表单: 然后,

  • 问题内容: 目前,我在隐藏的输入字段中回显某些变量,并在需要时使用Javascript读取它们。 我和一个同事现在正在考虑使用PHP生成一个额外的Javascript文件,该文件仅包含Javascript的所有变量。这样,变量已经存在,HTML中没有多余的代码。 有什么好的方法可以将变量从PHP传递到Javascript?我们的解决方案听起来如何? 问题答案: 通用数据传递 JavaScript常

  • 我在jsp/jstl中有名字和密码,我试图将名字和密码传递给控制器。 这是我的控制器课程 包裹通讯。易于理解的控制器; 这是索引。带有表单标记和c标记库的jsp 我试图将变量user(值取自name variable)从此窗体传递给控制器。 有人能帮我怎么用c标签吗。。 我已经使用过commandName=“registereduser”,其中user是类registereduser的对象。 但我

  • 我想将countrySelection值传递给controller

  • 问题内容: 我有两个Angular控制器: 我无法使用内部,因为它是未定义的。但是,如果我尝试像这样传递它… 我得到一个错误。有谁知道如何做到这一点? 在做 也失败。 注意: 这些控制器彼此之间不嵌套。 问题答案: 在多个控制器之间共享变量的一种方法是创建服务并将其注入到要使用它的任何控制器中。 简单服务示例: 在控制器中使用服务: 这个博客对此进行了很好的描述(特别是第2课)。 我发现,如果要跨

  • 问题内容: 将AngularJS范围变量从指令传递到控制器的最简单方法是什么?我所看到的所有示例似乎都很复杂,难道没有一种方法可以从指令访问控制器并设置其作用域变量之一吗? 问题答案: 于2014/8/25编辑: 这是我分叉的地方。 谢谢@anvarik。 这是JSFiddle。我忘了我在哪里分叉。但这是一个很好的示例,向您展示了=和@之间的区别