6

我试图通过绑定将一些参数传递给我的组件,但不幸的是我没有运气在我的控制器中使用这些参数,这是我的代码:

angular.module('project1').component('menu', {
    templateUrl: '/static/js/templates/menu.template.html',
    bindings: {
        rid: '@'
    },
    controller: ['Restaurant', function RestaurantListController(Restaurant) {
        console.log(this.rid);
        console.log(this);
        this.restaurant = Restaurant.get({restaurantId: this.rid});
    }]
});

HTML 组件:

<menu rid="1"></menu>

有趣的是我可以访问模板中的参数,当我执行 2 个控制台日志时,第一个是未定义的,但在第二个中我可以看到 rid 变量......所以,我真的不明白我错过了什么。

4

2 回答 2

9

使用 Angular 1.6,您的绑定将在 $onInit 方法上准备好,而不是之前。

如果您需要重新启用自动绑定 https://toddmotto.com/angular-1-6-is-here#re-enabling-auto-bindings

于 2016-12-25T17:29:46.240 回答
0

如果有人仍在寻找解决方案,请使用 angular 提供的 $onInit方法

            this.$onInit = function () {
            $http.get(`/api/v1/projects`).then((res) => {
                $scope.projects = res.data;
            }, (err) => {
                $scope.error = err
            })
        };
于 2020-03-26T20:11:20.947 回答