角度服务变量未在视图

时间:2015-05-12 10:48:47

标签: javascript angularjs angularjs-directive angularjs-service

我有以下服务:

app.service('Cart', function() {
    this.data = [];
    this.addFont = function(font) { return this.data.push(font) };
    this.removeFont = function(i) { return this.data.splice(i, 1); };
    this.count = function() { return this.data.length; };
});

以下指令显示包含其中项目数的购物车图标:

app.directive('cartButton', ['Cart', function(Cart) {
    return {
        restrict: 'E',
        replace: true,
        template: '<button class="selection"><i class="fa fa-shopping-cart"></i> {{ Cart.count() }}</button>'
    };
}]);

但是计数器不起作用,并且没有错误。

如何在我的指令中访问Cart.count()

2 个答案:

答案 0 :(得分:1)

试试这个:

return {
    restrict: 'E',
    replace: true,
    template: '<button class="selection"><i class="fa fa-shopping-cart"></i> {{ Cart.count() }}</button>',
    link: function(scope) {
        scope.Cart= Cart;
    }
};

您需要将其分配到范围。

答案 1 :(得分:0)

根据范围评估角度表达式。

尝试在范围上设置一个函数,该函数将从this

获取计数
Cart