2017-03-24 5 views
0

私はコントローラ内の関数の戻り値として文字列を持っています。このように:返されたStringをAngular Conrollerのオブジェクトプロパティに割り当てる方法は?

 function concatDaysOfWeek() { 

     var DaysString = ""; 

     if (vm.sunday) DaysString = DaysString + '1'; 
     if (vm.monday) DaysString = DaysString + '2'; 
     if (vm.tuesday) DaysString = DaysString + '3'; 
     if (vm.wednesday) DaysString = DaysString + '4'; 
     if (vm.thursday) DaysString = DaysString + '5'; 
     if (vm.friday) DaysString = DaysString + '6'; 
     if (vm.saturday) DaysString = DaysString + '7'; 

     return DaysString; 

    } 

ここで私はプロパティを設定する必要があるオブジェクトを持っています。

 vm.schedule = {}; 

私のHTMLでは、このオブジェクトにバインドするng-modelの束を作成しました。 しかし、オブジェクトのプロパティに戻り値として返す文字列をバインドする方法がわかりません。

私はこのような何かしたい:

RecurrenceDaysOfWeek: DaysString 

をしかし、それは動作しません。オブジェクト{}の内部やコントローラのどこかにはありません。

助けてください。ありがとう

+0

に値を割り当てる 'vm.schedule = {XYZ:concatDaysOfWeek()};' – Satpal

+0

I後私はこの{"RecurrenceDaysOfWeek": "}}を見ました。私は日を選択しても空の文字列です。だからそれはそれを解決しませんでした。私は選択してUnselectとして日が変わるのを見たいと思う。 – froglim

答えて

0

なぜあなたの方法でそれを設定しないのですか?

function concatDaysOfWeek() { 

    var DaysString = ""; 
    if (vm.sunday) DaysString = DaysString + '1'; 
    if (vm.monday) DaysString = DaysString + '2'; 
    if (vm.tuesday) DaysString = DaysString + '3'; 
    if (vm.wednesday) DaysString = DaysString + '4'; 
    if (vm.thursday) DaysString = DaysString + '5'; 
    if (vm.friday) DaysString = DaysString + '6'; 
    if (vm.saturday) DaysString = DaysString + '7'; 

    vm.schedule.myVariable = DaysString; 
} 
+0

ありがとうございます!これはうまくいった。私は割り当ての前にDaysStringが返ってきました。これが原因で私はエラーを受けていました。 – froglim

+0

この回答が参考になった場合は、質問を閲覧している他の人が知っているように、選択した回答としてupvote/selectをしていただけますか? :) –

0

使用ng-init関数を呼び出してng-model

<input ng-model="vm.schedule.RecurrenceDaysOfWeek" ng-init="vm.schedule.RecurrenceDaysOfWeek = vm.concatDaysOfWeek()"/> 

angular.module("app",[]) 
 
.controller("ctrl",function($scope){ 
 
    var vm = this; 
 
    vm.concatDaysOfWeek = concatDaysOfWeek; 
 
    vm.schedule = {} 
 
    vm.sunday = "1"; 
 
    function concatDaysOfWeek() { 
 

 
     var DaysString = ""; 
 

 
     if (vm.sunday) DaysString = DaysString + '1'; 
 
     if (vm.monday) DaysString = DaysString + '2'; 
 
     if (vm.tuesday) DaysString = DaysString + '3'; 
 
     if (vm.wednesday) DaysString = DaysString + '4'; 
 
     if (vm.thursday) DaysString = DaysString + '5'; 
 
     if (vm.friday) DaysString = DaysString + '6'; 
 
     if (vm.saturday) DaysString = DaysString + '7'; 
 

 
     return DaysString; 
 

 
    } 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl as vm"> 
 
<input ng-model="vm.schedule.RecurrenceDaysOfWeek" ng-init="vm.schedule.RecurrenceDaysOfWeek = vm.concatDaysOfWeek()"/> 
 
</div>

関連する問題