如何在计算中包含可观察量并绕过 resharper 警告?
How to include observables in computed and get around resharper warning?
我正在尝试解决有关未使用变量的 resharper 警告。
这是我当前的函数:
self.contentDimensions = _i.ko.computed(function () {
var fakeVarToFireComputed = self.contentSize() + self.ListLength();
var firstEl = _i.$(itemSelector, self.viewRef()).first();
if (firstEl.length > 0) {
return {
width: firstEl.outerWidth(true),
height: firstEl.outerHeight(true) };
} else {
return self.contentDimensions();
}
}, this, { deferEvaluation: true });
但是由于没有使用 fakeVarToFireComputed,它会发出警告。
这是我想出的:
self.contentDimensions = _i.ko.computed(function () {
var fakeVarToFireComputed = self.contentSize() + self.ListLength();
var firstEl = _i.$(itemSelector, self.viewRef()).first();
if (firstEl.length > 0) {
return {
width: firstEl.outerWidth(true),
height: firstEl.outerHeight(true),
fake: fakeVarToFireComputed
};
} else {
return self.contentDimensions();
}
}, this, { deferEvaluation: true });
这消除了警告,但有更好的方法吗?
我尝试寻找在计算中包含可观察值的方法,但找不到方法,除非您实际使用该值。我也没有真正看到一些订阅者重写它的方法。
你是对的,你需要调用所有 observable 来让它们在计算中注册...但是,你不需要实际使用它们的值,只需 execute可观察量。
在你的情况下,像这样的事情可以解决问题并防止 resharper 警告
self.contentDimensions = _i.ko.computed(function () {
self.contentSize(); //Something like this will be enough
self.ListLength();
var firstEl = _i.$(itemSelector, self.viewRef()).first();
if (firstEl.length > 0) {
return {
width: firstEl.outerWidth(true),
height: firstEl.outerHeight(true),
fake: fakeVarToFireComputed
};
} else {
return self.contentDimensions();
}
}, this, { deferEvaluation: true });
在一个工作项目中,我有动态依赖项,所以我预先注册了它们,我的计算看起来像这样
node.isValid = ko.pureComputed(function () {
for (var i = 0; i < this.isValidDependencies().length; i++) {
this.isValidDependencies()[i](); //Just call every dependency
}
//more code, validations bla bla bla
},node);
我正在尝试解决有关未使用变量的 resharper 警告。
这是我当前的函数:
self.contentDimensions = _i.ko.computed(function () {
var fakeVarToFireComputed = self.contentSize() + self.ListLength();
var firstEl = _i.$(itemSelector, self.viewRef()).first();
if (firstEl.length > 0) {
return {
width: firstEl.outerWidth(true),
height: firstEl.outerHeight(true) };
} else {
return self.contentDimensions();
}
}, this, { deferEvaluation: true });
但是由于没有使用 fakeVarToFireComputed,它会发出警告。
这是我想出的:
self.contentDimensions = _i.ko.computed(function () {
var fakeVarToFireComputed = self.contentSize() + self.ListLength();
var firstEl = _i.$(itemSelector, self.viewRef()).first();
if (firstEl.length > 0) {
return {
width: firstEl.outerWidth(true),
height: firstEl.outerHeight(true),
fake: fakeVarToFireComputed
};
} else {
return self.contentDimensions();
}
}, this, { deferEvaluation: true });
这消除了警告,但有更好的方法吗?
我尝试寻找在计算中包含可观察值的方法,但找不到方法,除非您实际使用该值。我也没有真正看到一些订阅者重写它的方法。
你是对的,你需要调用所有 observable 来让它们在计算中注册...但是,你不需要实际使用它们的值,只需 execute可观察量。
在你的情况下,像这样的事情可以解决问题并防止 resharper 警告
self.contentDimensions = _i.ko.computed(function () {
self.contentSize(); //Something like this will be enough
self.ListLength();
var firstEl = _i.$(itemSelector, self.viewRef()).first();
if (firstEl.length > 0) {
return {
width: firstEl.outerWidth(true),
height: firstEl.outerHeight(true),
fake: fakeVarToFireComputed
};
} else {
return self.contentDimensions();
}
}, this, { deferEvaluation: true });
在一个工作项目中,我有动态依赖项,所以我预先注册了它们,我的计算看起来像这样
node.isValid = ko.pureComputed(function () {
for (var i = 0; i < this.isValidDependencies().length; i++) {
this.isValidDependencies()[i](); //Just call every dependency
}
//more code, validations bla bla bla
},node);