$scope.invoicename
には、各請求書のid、name、およびpdfmakeを持つ請求書のデータが格納されています。ユーザーが請求書名を選択すると、選択したpdfmakeによって設計されたpdf文書が表示されます。これは選択のための私のHTMLですng-change指示が期待通りに機能しない
<select class="form-control" ng-change="zafakturu(dizajn.pdfmake)" ng-model="dizajn.pdfmake">
<option value={{dizajn.pdfmake}} ng-repeat="dizajn in invoicename" selected="selected">{{dizajn.name}}</option>
</select>
ここでは、関数が変更と関数makeInvoiceで呼び出され、pdfドキュメントを表示する必要があります。
var makeInvoice = function(doc){
pdfMake.createPdf(doc).getDataUrl(function(dataURL) {
$scope.fajll= dataURL;
});
console.log(doc);
};
$scope.zafakturu = function (pdf){
$scope.docDefinition = eval("(" + pdf + ")");
makeInvoice($scope.docDefinition);
};
ここにpdfを表示するhtml要素があります。
<object ng-show="fajll" data="{{fajll}}" type="application/pdf" style="width: 100%; height: 400px;"></object>
問題は、1つの値を選択すると、その値のpdfが2番目の選択後に表示されることです。たとえば、オプション1,2,3を選択してオプション2を選択した場合、そのオプションのpdfmakeは、1または3を選択した後にのみ表示されます。
可能な限り、選択肢リストを作成するときには、 'ng-repeat'を使って' ng-options'を使うべきです。 'ng-options'構文に切り替えることを考えて、まだ期待どおりに動作しない場合は質問を更新することをお勧めします。 – Claies
また、 'value'をあなたのモデルと同じに設定するのは意味がありません。あなたはすべてのドロップダウンの値があなたのモデルと等しくなることを望んでいません.... – Claies