나는 http://jsfiddle.net/skwidgets/w2X9m/3/에 바이올린을 사용하여 확인란 그룹을 만듭니다. 프로토 타입에서 원하는대로 작동하며 하나 이상의 그룹을 포함 할 수 있으며 독립적으로 실행할 수 있습니다. 만족 스러우면서 필자는 내가 만들고있는 응용 프로그램에 코드를 추가하고 템플릿의 html : 지시문의 '<'이 나타나지 않습니다. 템플릿의 핸들 막대에있는 모델 데이터는 항상 수행됩니다. 나는 왜 오류가 없는지 알아 내기 위해 솔기를 짤 수가 없다.AngularJS 지시문 템플릿에 HTML이 표시되지 않습니다.
나는 또한 내가 연결되어있는 피들러에서 프로토 타입의 코드를했다 http://plnkr.co/edit/JE5dRDU4VyGd0UAbCtNu?p=preview
<div class="sqs" >
<pre>
{{survey | json}}
</pre>
<suvey-checkbox ng-model="Q1" ng-init="surveyQuestions = [
{ 'value':'value1', 'name': 'The unit' },
{ 'value': 'value2', 'name': 'Patient Threw Up'},
{ 'value':'value3', 'name': 'Unsafe for children' },
{ 'value':'value4', 'name': 'Actively dying, reached life goal'}]">
</suvey-checkbox>
<suvey-checkbox ng-model="Q2" ng-init="surveyQuestions = [
{ 'value':'value1', 'name': 'The unit' },
{ 'value': 'value2', 'name': 'Patient Threw Up'},
{ 'value':'value3', 'name': 'Unsafe for children' },
{ 'value':'value4', 'name': 'Actively dying, reached life goal'}]">
</suvey-checkbox>
</div>
그리고
var app = angular.module("app", []);
app.run(function($rootScope){
$rootScope.survey = [];
});
app.directive('suveyCheckbox', function ($rootScope) {
return {
restrict: 'E',
require: '^ngModel',
scope: {
ngModel: '@'
},
template: '{{ngModel}}<br /><label ng-repeat="surveyQuestion in surveyQuestions" class="checkbox">' +
'<input data-role="none" type="checkbox" name="selectedExclusion[]" value="{{surveyQuestion.value}}"' +
'ng-checked="surveyAnswers.indexOf(surveyQuestion.value) > -1" ng-click="togglesurveyAnswers(surveyQuestion.value)"> ' +
'{{surveyQuestion.name}} <br /></label>{{surveyAnswers}}',
link: function (scope, elem, attr) {
// selected exclusion
scope.surveyAnswers = [];
// toggle surveyAnswers for a given answer by name
scope.togglesurveyAnswers = function togglesurveyAnswers(surveyQuestion) {
var idx = scope.surveyAnswers.indexOf(surveyQuestion);
// is currently selected
if (idx > -1) {
scope.surveyAnswers.splice(idx, 1);
}
// is newly selected
else {
scope.surveyAnswers.push(surveyQuestion);
}
};
$rootScope.survey.push(scope.surveyAnswers);
}
}
});
작업 코드를 보여줍니다이 plunker을 가지고 있고 그것은 작동하지 않습니다 몇몇 이유.
정확히 무엇입니까? 나는 조금 혼란 스럽다. 나는 당신의 바이올린을 가져다가 작동 시켰고, 당신의 지시어 이름에 오자를 수정했다, 당신이 'survey'대신에 'suvey'를 의미하지 않았다면, 업데이트 된 [fiddle] (http://jsfiddle.net/w2X9m/8/) – jnthnjns
수정 및 작업 바이올린에 감사드립니다. 문제는 내가 만들고있는 앱에 넣을 때 같은 코드가 HTML의 template : value 값과 아무런 관련이 없다는 것입니다. 페이지에 모달 이름 (bedsideQ1, bedsideQ1)과 두 개의 빈 개체 ([], [])가 표시됩니다. 확인란은 채워지지 않습니다. 나는 이유를 알 수 없다. – skwidgets
지금 당장 이유를 설명 할 수는 없지만 원판이 AngularJS 1.2를 포함하고 있었고 plunker가 1.1.5인데 원래 피들이 피들에 복사되어 다른 것들을 포함하고있었습니다. 어쨌든 방금 피 더블린을 다시 열었고 AngularJS 소스를 최신 1.2.4로 변경했으며 동일한 빈 브래킷 문제가 다시 발생했습니다. 따라서 앱이 1.1.5인지 확인하십시오. 작동하는 경우 버전 문제입니다. 나는 주사가 필요한지 또는 비추천이 문제인지보기 위해 보았습니다. – jnthnjns