0
我想跟踪任何自定义元素(或视图)的属性更改。因此,而不是更新每个视图,或创建超类,我试图使用插件并附加到propertyChanged观察员。这样我在虚拟机的环境中,我有一个参考,我有一个更改属性和新值的名称。我也想链接到一个视图(Element)。所以我的问题是 - 如果我有一台虚拟机,我该如何获得一个View?如何查看我是否参考了ViewModel?
为了更好地理解我也贴我的测试代码(我的插件):
let originalCreateObserver = BindableProperty.prototype.createObserver;
BindableProperty.prototype.createObserver = function(viewModel)
{
let changeHandlerName = this.changeHandler;
let name = this.name;
let behaviorPropertyObserver: BehaviorPropertyObserver = originalCreateObserver.apply(this, arguments);
let originalSelfSubscriber = behaviorPropertyObserver['selfSubscriber'];
behaviorPropertyObserver['selfSubscriber'] = function()
{
console.log('attr changed', viewModel, name);
// QUESTION: Link to a View?
originalSelfSubscriber.apply(this, arguments);
}
return behaviorPropertyObserver;
}
奖金的问题:这是很猴子修补。有没有更好的方式来附加订阅者?
这不是一个很好的答案,因为我说的“而不是更新每个视图,或创建超类,我试图使用插件”。注入元素是我必须为每个视图执行的操作。我需要在插件(和它的上下文)中连接视图和虚拟机 – user1440445
你能解释更多吗?您需要在插件中使用哪个视图? – Benoit
我想要什么注入元素返回,但我不能做注入,因为它必须是每个视图的一般。 – user1440445