TL; DR; - Problem polega na tym, że atrybuty są snake-case, a definicja zakresu przekształca je w camelCase.
Cóż masz:
app.directive('childOne', function() {
return {
restrict: "E",
replace: true,
scope: {
labelName: "@",
selectPhrase: "@",
ngModel: "=",
options: "=",
},
template: '<span><div class="local-label">{{labelName}}: </div><div style="width:15px;display:inline-block;"></div>' +
'<span style="display: inline-block;"><select ng-model="ngModel" ng-options="o.Id as o.Name for o in options | orderBy:\'Name\'" class="formRequire" required><option value="" selected="selected">{{selectPhrase}} ...</option></select>' +
'</span></div></span>'
};
})
Problemem jest to, że wiążą ngModel ale dziecko-jeden element nie stanowią dla niego wartość. Jeśli skomentuję tę część, wydaje się, że działa dobrze.
Wydaje się, że gdy masz „=” powiązań w zakresie oznacza to obowiązkowe, również atrybuty są przekształcane z węża przypadku do camelCase gdy zdefiniowane w javascript świat
PS: To prawdziwy błąd jest trochę niejasne
Dzięki Liviu, naprawdę nie powinienem był używać tego plunkera, ponieważ go nie stworzyłem, więc nie mogłem go edytować. Zmieniłem plunkera, abym mógł pokazać korektę. – Bye
Dziękuję człowiekowi za uwagę na temat transformacji camelCase. w moim przypadku problemem była nazwa atrybutu z podkreśleniem. –
Czy istnieje sposób, aby to naprawić, aby nie można go było przypisać? – ajbraus