DÜZENLEME
Bunu ng-değişikliğiyle kullanan yorumlarda doğru bir şekilde belirtildiği gibi, önceden bir "kukla" ng modelinin mevcut olmasını gerektirir. Bununla birlikte, 1.3 ile birlikte gerekli seçeneklerin çerçeve tarafından sağlandığı unutulmamalıdır. Lütfen aşağıdaki https://stackoverflow.com/a/28365515/3497830 adresini kontrol edin !
/DÜZENLE
Daha karmaşık bir göreve sahipken basit bir vakada tökezlediğim gibi, keyfi ifadeleri ng-modeline dinamik olarak bağlamak için bulduğum çözüm budur: http://plnkr.co/edit/ccdJTm0zBnqjntEQfAfx?p = önizleme
Yöntem: Standart bir açısal ifade alan, değerlendiren ve sonucu kapsam ile ng-model ve $ compile ile ilişkilendiren bir dynamicModel yönergesi oluşturdum.
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);
});
}
};
}]);
Kullanım, basitçe dynamic-model = "angularExpression" şeklindedir; burada angularExpression, ng modeli için ifade olarak kullanılan bir dizeyle sonuçlanır.
Umarım bu, birini bu çözümü bulmanın baş ağrısından kurtarır.
Saygılarımızla, Justus