Как привязать один раз в угол и снова привязать при смене модели?
Есть ли какое-нибудь решение или угловой плагин для связывания в одну сторону и связывания снова, когда модель меняется? Сейчас я использую плагин 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
};
}]);