Мне нужно установить атрибут data-ng-model в поле ввода html через javascript. Я знаю, что не могу
element.data-ng-model = "...";
из-за тире. Поэтому я попробовал
element.["data-ng-model"] = "...";
а также
element.dataNgModel = "...";
а также
element.datangmodel = "...";
Ничто из этого не работает должным образом. Какие-либо предложения?
Пытаться:
element.setAttribute("ng-model", "...");
или если у вас есть JQuery:
$(element).attr("ng-model", "...");
Если вам нужно установить модель с помощью javascript, вы можете установить ее в контроллере, см. Ниже. Из угловых документов https://docs.angularjs.org/api/ng/directive/ngModel
(function(angular) {
'use strict';
angular.module('getterSetterExample', [])
.controller('ExampleController', ['$scope',
function($scope) {
var _name = 'Brian';
$scope.user = {
name: function(newName) {
// Note that newName can be undefined for two reasons:
// 1. Because it is called as a getter and thus called with no arguments
// 2. Because the property should actually be set to undefined. This happens e.g. if the
// input is invalid
return arguments.length ? (_name = newName) : _name;
}
};
}
]);
})(window.angular);
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<div ng-app="getterSetterExample">
<div ng-controller="ExampleController">
<form name="userForm">
<label>Name:
<input type="text" name="userName" ng-model="user.name" ng-model-options="{ getterSetter: true }" />
</label>
</form>
<pre>user.name = <span ng-bind="user.name()"></span></pre>
</div>
</div>