我有一张数据表已加载。但我需要一个特定列的数据由函数生成。并且没有调用该函数。我不知道为什么
功能
vm.itemName = '';
vm.getItemName = function (item) {
termService.getItemName({ itemId: term.itemID })
.then(function (result) {
vm.itemName = JSON.stringify(result.data);
});
};
page.cshtml
<td>
<span>{{vm.itemName }}</span>
</td>
当页面呈现时,列为空。当我调试应用程序时,我意识到该函数未被调用。
N.B该函数通过Web API调用c#方法。
EDITS
我在下面使用此函数获取itemsList,它运行正常。
vm.terms = [];
function getTermsList() {
termService.getTermsList({}).success(function (result) {
vm.terms = result.items;
});
}
我的表格看起来像这样,所以你知道'item'来自哪里
<tbody>
<tr ng-repeat="item in vm.terms">
<td>....</td>
</tr>
</tbody>
答案 0 :(得分:-1)
“getter”在使用SERVER SIDE渲染时不会被神奇地调用,但我们可以按照您的预期使用它:
vm._itemName = '';
var itemNamePromise = null;
//define itemName getter
Object.defineProperty(vm, "itemName", {
get: function() {
itemNamePromise = if(itemName === '' && itemNamePromise === null){ //to avoid multile service calls
termService.getItemName({ itemId: term.itemID })
.then(function (result) {
vm._itemName = JSON.stringify(result.data);
});
}
return vm._itemName;
}
});
请参阅以下参考资料: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/get