편집
ng-change와 함께 이것을 사용하는 주석에서 올바르게 언급했듯이 "더미"ng-model이 미리 존재해야합니다. 그러나 1.3에서는 프레임 워크에서 필요한 옵션을 제공 한 것으로 보입니다. 아래 https://stackoverflow.com/a/28365515/3497830을 확인 하세요!
/편집하다
좀 더 복잡한 작업을하면서 간단한 경우에 걸림돌이되는 저와 같은 경우를 대비하여 ng-model에 동적으로 임의의 표현식을 바인딩하기 위해 고안 한 솔루션입니다. http://plnkr.co/edit/ccdJTm0zBnqjntEQfAfx?p = 미리보기
방법 : 표준 각도 표현식을 사용하여 평가하고 결과를 ng-model 및 $ compile을 통해 범위에 연결하는 dynamicModel 지시문을 만들었습니다.
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.data = {};
$scope.testvalue = 'data.foo';
$scope.eval = $scope.$eval;
});
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.data = {};
$scope.testvalue = 'data.foo';
$scope.eval = $scope.$eval;
});
app.directive('dynamicModel', ['$compile', function ($compile) {
return {
'link': function(scope, element, attrs) {
scope.$watch(attrs.dynamicModel, function(dynamicModel) {
if (attrs.ngModel == dynamicModel || !dynamicModel) return;
element.attr('ng-model', dynamicModel);
if (dynamicModel == '') {
element.removeAttr('ng-model');
}
element.unbind();
$compile(element)(scope);
});
}
};
}]);
사용법은 단순히 dynamic-model = "angularExpression"입니다. 여기서 angularExpression은 ng-model의 표현식으로 사용되는 문자열을 생성합니다.
나는 이것이 누군가 가이 해결책을 찾아야하는 두통을 덜어주기를 바랍니다.
감사합니다, Justus