2013-09-05 2 views
0

Я создал директиву с шаблоном выбора, но мне нужен тег «name», поэтому я могу поместить валидацию, и я не знаю, как добавить это. Я попытался добавить attr, но это не сработало.AngularJS: Выберите директивную проверку

Here is the fiddle

<form name="newForm" ng-submit="save()"> 
       <div> 
        Name: <input required ng-model="newSupplier.Name" name="myName" type="text" required/> 
        <span ng-show="newForm.myName.$error.required">*</span> 
        <br /> 
        Status: <keywords name="myStatus" title="Choose Status" label="" array="myKeyword" keyword-type="ActivityType" supplier-id="newSupplier.Id" opt-value="Id" opt-description="Description"></keywords> 
        <span ng-show="newForm.myStatus.$error.required">*</span> 
        <br> 
        <button type="submit">Save</button> 
        <br /><i>How to save the ID of the selected dropdown?</i> 
        </div> 
        </form> 

JS

app.directive('keywords', function(){ 
    return { 
     restrict: 'E', 
     scope: { 
      array: '=', 
      supplierId : '=' 
     }, 
     template: '<label>{{label}}</label>' + 
     '<select ng-model="supplierId" ng-options="a[optValue] as a[optDescription] for a in array | filter: keywordType">' + 
         '<option style="display: none" value="">-- {{title}} --</option>' + 
        '</select>', 
     link: function (scope, element, attrs) { 
      scope.label = attrs.label; 
      scope.title = attrs.title; 
      scope.optValue = attrs.optValue; 
      scope.optDescription = attrs.optDescription; 
      scope.keywordType = attrs.keywordType; 
     } 
    }; 
}); 

ответ

0

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

template: '<label>{{label}}</label>' + 
      '<select ng-model="supplierId" ng-options="a[optValue] as a[optDescription] for a in array | filter: keywordType" required>' + 
      '<option style="display: none" value="">-- {{title}} --</option>' + 
      '</select>', 

Это обновленный demo

Надеется, что это полезно для вас.

+0

спасибо, я понял. :) –

+0

У меня проблема с этим исправлением. После того, как я добавил новальдат в форму, выпадающее меню больше не работает. Я думаю, мне нужно передать значение «имя» раскрывающегося списка, чтобы он работал. сейчас моя проблема в том, как я могу передать атрибут «Имя» в моей директиве? Я попытался добавить attr в область видимости, но он не работает. [это мой последний тест] (http://jsfiddle.net/jemaineosia/jJRfw/10/) –

+0

Что выпадающее меню не работает? Я тестирую ваши демо и выпадающие работы. Вы имеете в виду, что вам нужен только список выпадающего списка для проверки? – Chickenrice

Смежные вопросы