加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Angular JS – 将数据从指令发送到父控制器

发布时间:2020-12-17 10:18:52 所属栏目:安全 来源:网络整理
导读:我有一个应用程序,我使用 ngCart指令,以存储添加到篮子中的项目.问题是该指令只具有发送用户添加的项目信息的功能,但我还需要发送一些我将从表单中获取的信息. 因此,为了在单个对象中发送它,我首先需要将指令中存储的数据提取到我的主范围,然后将其与我从表
我有一个应用程序,我使用 ngCart指令,以存储添加到篮子中的项目.问题是该指令只具有发送用户添加的项目信息的功能,但我还需要发送一些我将从表单中获取的信息.

因此,为了在单个对象中发送它,我首先需要将指令中存储的数据提取到我的主范围,然后将其与我从表单中获取的数据合并.

为此,我需要修改ngCart.js指令.我试图提供服务,正如here所建议的那样,但我无法让它发挥作用.我在指令中添加的代码是这样的

.service('ngCartData',['ngCart',function(ngCart){

    return {
        data:ngCart;
    };

 }])

,但是我收到一个错误,说模块’ngCart’不可用!

我对角度服务和工厂都很陌生,所以我不确切地知道在哪里工作.我用我的代码创建了一个plunkr(我尝试使用上面的代码修改ngCart.js文件,但是plunkr显示了该指令而没有任何修改).我只需要能够在范围ngCart中发送存储在指令中的数据,以便我可以在父控制器中监听它(参见plunkr中的checkout部分).

任何帮助将非常感激.谢谢!

你有正确的想法,我很惊讶它不适合你.

我已按以下方式编辑您的应用程序(在script.js中)

app.controller('myCtrl',function($scope,ngCart,myCart) {
     $scope.names = [...];
     ...
     console.log(myCart.cart);
 })
    .factory('myCart',function(ngCart){
        return {
            cart: ngCart.$cart
        };
 })

并记录{shipping:30,taxRate:null,tax:null,items:Array [2]},我认为这就是你所需要的(我记录之前添加了2个项目).

请注意,添加服务是多余的;您可以随时随地访问数据.只需将ngCart注入您的控制器/服务/等.并且可以使用更新的数据.

因此,以下代码是等效的:

app.controller('myCtrl',ngCart) {
       $scope.names = [...];
       ...
       console.log(ngCart.$cart);
    });

获得错误的一个可能原因可能是,在编辑ngCart模块时,您遇到了某种错误(如拼写错误),导致ngCart对角度不可见.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读