在Angular 1.5+中绑定一次

时间:2017-01-03 18:20:59

标签: angularjs data-binding binding oneway bindonce

我正在为我的应用程序使用组件,而且只有在我的承诺解决后才会显示模板:

var config = function ($stateProvider) {
    'ngInject';

    $stateProvider.state('test', {
        url: '/',
        views: {
            'root@' : {
                template: '<test></test>'
        },
        resolve: {
            data: function(User) {
                return User.get({
                 hash: 'test',
                 langue: 'en'
                 }).$promise;
            }

        }
    });
};

我的组件具有单向数据绑定:

var userComponent =  {
    bindings: {
        data: "<"
    },
    controller: UserController,
    templateUrl: '/app/users/user.html'
};

但是,如果我想直接调用服务从组件的控制器获取一些数据并将其显示在我的html模板中,该怎么办?我该如何绑定它?

在我们的html模板中使用Angular 1.5+中的bind-once(::)仍然被认为是“好习惯”吗?

1 个答案:

答案 0 :(得分:0)

如果在组件模板{{ ::vm.someProp }}中使用bindOnce语法,则一旦呈现视图,Angular将解除绑定属性,如果更改组件控制器中的属性,则不会更新视图。

因此,通过使用bindOnce sytax,您可以消除不必要的绑定,我认为这是“良好实践”。不应该影响bindOnce语法的使用,我们现在在AngularJS中有组件