控制器

时间:2016-12-25 17:08:53

标签: javascript angularjs angularjs-1.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变量...所以,我真的不喜欢不明白我错过了什么。

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:0)

如果仍在搜索解决方案,请使用angular提供的$ onInit方法。

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