如何将返回的String分配给Angular Conroller中的对象属性?

时间:2017-03-24 16:31:00

标签: javascript angularjs

我在控制器的函数中有一个String作为返回值。像这样:

        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

但它不起作用。不在对象{}内,也不在控制器的其他位置。

请帮忙。感谢

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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>