나는 내 길을 수색했지만 이것을 알아낼 수는 없다. 서버에서 항목을로드하고이를 사용자에게 보여주고 사용자가 선택할 수 있도록 지시문 manyToOneSelect
(사용자 지정 구성 요소)을 만들었습니다. 잘 작동하지만 사용자가 항목을 선택하지 않은 경우 양식 제출을 방지하는 방법, 즉 양식을 무효화하는 방법을 알 수 없습니다.사용자 지정 구성 요소별로 양식 무효화 | AngularJS
<form ng-href="#/" ng-submit="save()">
<many-to-one-select entity-name="customer" entity-field="name"
bind-variable="entity.customerUuid"></many-to-one-select>
...
내 문제가 보인다
여기<select ng-hide="disable" ng-options="entity.uuid as entity[entityField] for entity in entities" ng-model="bindVariable" required></select>
<span ng-show="disable">{{lookup(bindVariable)[entityField]}}</span>
내가 지시어를 사용하는 방법입니다
여기angular.module('myApp.directives').
directive('manyToOneSelect', function(entityService) {
return {
restrict:'E',
templateUrl:'partials/control/n21select.html',
scope:{
entityName:'@',
entityField:'@',
bindVariable:'='
},
compile:function (tElement, tAttrs, transclude) {
return function (scope, element, attrs) {
var inner = element.children("#n21select");
scope.entities = [];
scope.$watch('entityName', function ($new, $old) {
entityService.getList(scope.entityName, function (data) {
scope.entities = data;
}, []);
}, true);
scope.lookup = function(uuid) {
for(var i in scope.entities) {
if(scope.entities[i].uuid == uuid) {
return scope.entities[i];
}}}}}}});
가 해당 부분 partials/control/n21select.html
입니다 : 아래
는 거의 지시자이다 전략의 부족,보다는 오히려 "일하기 위하여 그것을 완전히 얻기", 그러므로 너는 " 위에 게시 한 코드에서 어떤 시도가 보이지 않습니다. 다음에 이것이 공개적으로 질문이되게하십시오 : 그것을하는 방법? :) 이미 많은 점을 알고 있습니다!
'}}}}}}}});'... AAAAHHH !!! 내 눈!!! –
나는 그것을 간단하게하기 위해 생략 한 괄호의 수를 알아낼 필요없이 전체 지시문을 복사/붙여 넣을 수 있도록 그렇게했습니다. –
나는 단지 놀리는 것이 었습니다. 나는 대답을 추가했다, 나는 그것이 도움이되기를 바란다. –