在 Angular 1.5+ 中绑定一次



我正在为我的应用程序使用组件,并且仅在我的承诺解决时才显示模板:

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+ 中的绑定一次 ( :: ) 仍然被认为是"好习惯"吗?

如果在组件模板中使用 bindOnce 语法{{ ::vm.someProp }}则 Angular 将在呈现视图后取消绑定该属性,并且在更改组件控制器中的属性时不会更新视图。

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

最新更新