有什么解决方案或角度插件可以在模型更改时以一种方式绑定并再次绑定?现在我正在使用插件bind-once,但它只是第一次绑定然后它破坏了观察者。例子:
<div bindonce="model"><span bo-bind="model.title"></span></div>
Angular 已经为你做到了
<div><span ng-bind="model.title"></span></div>
或者
<div><span>{{model.title}}</span></div>
你怎么能做到这一点: re-redner(ng-if) 更改某些变量的页面。会发生什么,dom 将被删除,然后再次添加,它正在被再次添加:angular 应该将变量绑定到它的当前值,所以这样你就可以保持绑定一次并根据你的更新值需要。
唯一需要注意的是,您需要一个关于何时重新加载的 DOM 指示器。
您可以使用下面的 reload 指令(我在我的应用程序中使用):
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
};
}]);