2017-03-24 39 views
0

我有一个字符串作为我的控制器中的函数的返回值。像这样:如何将返回的字符串分配给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模型。 但我不知道如何将我得到的字符串作为返回值绑定到我的对象中的属性。

我想是这样的:

RecurrenceDaysOfWeek: DaysString 

但它不工作。不在对象内部,也不在控制器中的其他位置。

请帮忙。谢谢

+0

'vm.schedule = {XYZ:concatDaysOfWeek()};后我' – Satpal

+0

是否我看到这个{“RecurrenceDaysOfWeek”:“”}。即使我选择了这些日子,也是一个空字符串。所以这并没有解决它。我希望看到日子在我选择和取消选择时发生变化。 – 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 /选择它作为选择的答案,以便其他人查看问题知道吗? :) –

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>

相关问题