2015-06-22 2 views
1

Я использую 2 входа для определения возраста. Оба значения должны быть переданы на новый вход, который привязан к объекту rule.data. Это возможно? Я новичок в angularjs и, вероятно, у меня есть недостаток. Спасибо за ваши советыКак объединить два входа в одно значение и связать?

HTML

  <input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.from"/> 
      <input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.to"/> 
      <input type="text" class="form-control input-sm" ng-model="rule.data" value="between {{age.from}} and {{age.to}}" /> 
+0

пытались ли вы фиксируя опечатку «нг-mdodel» в первые 2 входа.: ng-mdodel = "age.to" -> ng-model = "age.to"? – shershen

+0

@shershen, спасибо, это была проблема с копией :-) – mm1975

ответ

4

Я не понимаю, почему вы хотите использовать <input> для форматирования текста со значениями мин и макс.

Вы предпочли бы это сделать, нет?

<input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.from"/> 
<input type="number" class="form-control input-sm" min="1" max="110" ng-mdodel="age.to"/> 
<span>between {{age.from}} and {{age.to}}</span> 

Это работает для вас?


Если строка просто заполнитель для значения возраст пользователя, вы должны сделать это вместо:

<input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.from"/> 
<input type="number" class="form-control input-sm" min="1" max="110" ng-mdodel="age.to"/> 
<input type="text" class="form-control input-sm" ng-model="rule.data" placeholder="between {{age.from}} and {{age.to}}" /> 

Если вам нужно, чтобы получить конечную строку в модель, вы можете сделать что-то вроде этого, то:

<input type="number" class="form-control input-sm" min="1" max="110" ng-model="age.from"/> 
<input type="number" class="form-control input-sm" min="1" max="110" ng-mdodel="age.to"/> 
<input type="text" class="form-control input-sm" ng-model="rule.data" ng-init="rule.data = 'between ' + age.from + ' and ' + age.to" /> 

(я предполагаю, что у вас нет контроллера для инициализации модели правильно.Если вы это сделаете, просто добавьте эту линию внутри: $scope.rule.data = 'between ' + $scope.age.from + ' and ' + $scope.age.to;. он должен сделать трюк)

+0

Мне нужна привязка 'rule.data' – mm1975

+0

И какое значение вы хотите связать с 'rule.data'? –

+0

age.from и age.to должны привязываться к новому значению value.data – mm1975

1

может меняться в зависимости от многих решений, вы можете добавить пользовательский фильтр на третий совместный результат,

 <input type="text" class="form-control input-sm" ng-model="rule.data | customFilter:age.from:age.to" value="between {{age.from}} and {{age.to}}" /> 

    app.filter('customFilter',function(){ 
    return function(input ,fromage,toage){ 
     //your code for between 
     return //your calculated age 
    } 

}); 
+0

Привет, я получаю следующую ошибку: Ошибка: [ngModel: nonassign] Expression 'rule.data | customFilter: age.from: age.to 'не назначается – mm1975

+0

Можете ли вы предоставить филдл, тогда я могу помочь вам лучше. – ngLover