Angular 1.6 控制器内部的绑定

Angular 1.6 bindings inside controller

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

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 变量...所以,我真的不明白我错过了什么。

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

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

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

            this.$onInit = function () {
            $http.get(`/api/v1/projects`).then((res) => {
                $scope.projects = res.data;
            }, (err) => {
                $scope.error = err
            })
        };