Как привязать один раз в угол и снова привязать при смене модели?

Есть ли какое-нибудь решение или угловой плагин для связывания в одну сторону и связывания снова, когда модель меняется? Сейчас я использую плагин bind-Once, но он просто привязывается в первый раз, а затем уничтожает Watcher. Пример:

    <div bindonce="model"><span bo-bind="model.title"></span></div>

2 ответа

Angular уже делает это для вас

<div><span ng-bind="model.title"></span></div>

или же

<div><span>{{model.title}}</span></div>

Как вы можете это сделать: перекрасить (ng-if) страницу при изменении определенной переменной. что произойдет, dom будет удален и добавлен снова, который добавляется снова: angular должен привязать переменную к ее текущему значению, так что таким образом вы сохраняете привязку один раз, а также обновляете значение согласно вашему необходимость.

Единственное предостережение - вам понадобится индикатор для DOM, когда нужно перезагрузить компьютер.

Вы можете использовать директиву перезагрузки ниже (которую я использую в своем приложении):

csapp.directive("csReloadOn", ["$timeout", "Logger", function ($timeout, logManager) {

    var $log = logManager.getInstance("csReloadOn");

    var getTemplate = function () {
        return '<div ng-if="doRefreshPageOnModeChange"><div ng-transclude=""></div></div>';
    };

    var linkFunction = function (scope, element, attrs) {
        scope.doRefreshPageOnModeChange = true;

        scope.$watch(attrs.csReloadOn, function (newVal, oldVal) {
            if (newVal === oldVal) return;
            $log.info("changed mode from : " + oldVal + ", to : " + newVal);
            scope.doRefreshPageOnModeChange = false;
            $timeout(function () { scope.doRefreshPageOnModeChange = true; }, 100);
        });
    };

    return {
        restrict: 'A',
        transclude: true,
        template: getTemplate,
        link: linkFunction
    };
}]);
Другие вопросы по тегам