Конкатенация строк в angularjs с ионным приложением

0

Я новичок в угловых js & ionic. Я использую https://github.com/rajeshwarpatlolla/ionic-datepicker Datepicker для одного моего приложения для Android. В настоящее время застрял один пункт.

Мне нужна динамическая сборка datepicker на странице из данных obj. В простом случае я знаю, как использовать Datepicker, но во время динамической генерации Datepicker я не знаю, как это сделать.

В нормальном случае, следуя директивному указателю на ионный датпикер, я использую & отлично работает.

<ionic-datepicker input-obj="datepickerObject">
    <button class="button icon-left ion-calendar"> {{datepickerObject.inputDate | date:datepickerObject.dateFormat}}</button>
</ionic-datepicker>

Но в случае динамической генерации это должно быть что-то вроде этого -

// For Start_Date
<ionic-datepicker input-obj="'datepickerObject_Start_Date">
    <button class="button icon-left ion-calendar">
        {{datepickerObject_Start_Date.inputDate | date:datepickerObject_Start_Date.dateFormat}}
    </button>
</ionic-datepicker>

// For End_Date
<ionic-datepicker input-obj="'datepickerObject_End_Date">
    <button class="button icon-left ion-calendar">
        {{datepickerObject_End_Date.inputDate | date:datepickerObject_End_Date.dateFormat}}
    </button>
</ionic-datepicker>

Я получаю те Start_Date & End_Date в переменной javascript в поле fieldRowKey. Но я не могу понять, как это понять во время выполнения.

Ex -
"'datepickerObject_'+fieldRowKey" 
OR 
"{{'datepickerObject_'fieldRowKey}}"

Я знаю, что это просто вопрос конкатенации строк, и я много старался, но не получал правильного пути.

Нужно руководствоваться.

благодаря

Обновлен код

Вместо того, чтобы манипулировать строкой, я создал функцию контроллера, которая будет делать то же самое и возвращать требуемую строку. Вот код -

<ionic-datepicker input-obj="getDatePickerObj(fieldRowKey)">
    <button class="button icon-left ion-calendar">
        {{getDatePickerObj(fieldRowKey).inputDate | date:getDatePickerObj(fieldRowKey).dateFormat}}
    </button>
</ionic-datepicker>

Функция контроллера -

// Method for creating datepicker obj string
$scope.getDatePickerObj = function(datePickerName){
    var datePickerObjStr = 'datepickerObject_'+datePickerName;
    console.log('datePickerObjStr : '+datePickerObjStr);

    return datePickerObjStr;
}

Но, еще не повезло -.-

Понял. Я ошибался в функции getDatePickerObj(). Вот обновленная версия.

// Method for creating datepicker obj string
$scope.getDatePickerObj = function(datePickerName){
    var datePickerObjStr = 'datepickerObject_'+datePickerName;
    console.log('datePickerObjStr : '+datePickerObjStr);

    return $scope[datePickerObjStr];
}

Теперь он отлично работает.

Теги:
ionic-framework
string-interpolation

1 ответ

1
Лучший ответ

Я думаю, что вы идете по неправильному пути, пытаясь объединить имена переменных во время выполнения.

Я не совсем понимаю, что именно вы пытаетесь сделать, но, надеюсь, следующее указывает вам в правильном направлении:

В вашем контроллере:

$scope.getDate = function(fieldRowKey) {
    return ...; //return the corresponding date object
};

И в вашем html:

<ionic-datepicker input-obj="getDate(fieldRowKey)">
  • 0
    @AndyHaslt - Спасибо за быстрый ответ. Я обновил свою Директиву следующим образом ... <ionic-datepicker input-obj="getDatePickerObj(fieldRowKey)"> <button class="button icon-left ion-calendar"> {{getDatePickerObj(fieldRowKey).inputDate | date:getDatePickerObj(fieldRowKey).dateFormat}} </button> </ionic-datepicker> Но, все равно что-то где-то сломалось, и это не работает.
  • 0
    Также в файле контроллера создана следующая функция: $scope.getDatePickerObj = function(datePickerName){ var datePickerObjStr = 'datepickerObject_'+datePickerName; console.log('datePickerObjStr : '+datePickerObjStr); return datePickerObjStr; }
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню