2016-09-28 5 views
0

データが読み込まれています。しかし、特定の列のデータを関数で生成する必要があります。その機能は呼び出されていません。列が空である理由角関数が呼び出されていない<span>タグ

機能

vm.itemName = ''; 

vm.getItemName = function (item) { 
    termService.getItemName({ itemId: term.itemID }) 
    .then(function (result) { 
      vm.itemName = JSON.stringify(result.data); 
    }); 
}; 

ページがレンダリングされるWhem 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; 
    }); 
} 

そして、私のテーブルグリッド「アイテムが」

<tbody> 
    <tr ng-repeat="item in vm.terms"> 
     <td>....</td> 
    </tr> 
</tbody> 
+0

vm.getItemName(item)はいつ呼び出されますか? – Dimitri

+0

@Dimitriデータがテーブルにロードされるときに呼び出す必要があります。 (ページロード) –

+0

あなたは 'vm.getItemName()'をどこかで呼び出す必要があります –

答えて

-1

どこから来たので、あなたが知っている。このように見える魔法のあなたがレンダリングサーバ側で動作するときのように呼ばれるが、我々は、私はできませんされている「ゲッター」

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; 
 
    } 
 
});

:あなたはこの方法で期待どおりそれが動作します0

互換性についての参考文献を参照してください: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/get

関連する問題