我需要在输入字段之后附加指令的模板。原始输入字段需要保留 - 我不能只创建它的副本。我想到的是,在控制器中,使用jQuery在输入字段后添加DIV,并将指令的属性添加到div。但是,在实践中,这不起作用 - 创建并添加div,但指令不会激活。
问题,我知道,添加了jQuery的div还没有被angularjs控制器识别 - 它看起来像是angularjs在受控制的html上运行。
我知道问题的一部分是你不应该在控制器中使用jQuery,但我真的想不出另一种方法来做到这一点。有没有办法让angularjs控制器看到这个新的div?
原始HTML如下所示。
<input name="generatedString_1234567890">
我在页面上运行jquery以向主体添加控制器。相关代码与此类似:
jQuery('body').attr('ng-controller','MainCtrl');
angular.module('app',['DataTools']);
angular.element(document).ready(function(){
angular.bootstrap(document, ['app']);
});
在angularjs中,我运行一个资源来获取一个json字符串,其中包含对DOM的相关更改,包括需要添加到输入的属性以及需要特定编码的某些理解标志。我正在尝试完成的相关任务看起来像这样,其中$(this)
是DOM的输入字段。
jQuery(document).find('input.FormField,select.FormField').each(function(){
// Inside a case statement based on certain flags
var d = $('<div/>');
d.attr("ng-model", 'adors.'+label);
// Relevant code that adds attributes to the div - including the required directives
$(this).hide().after(d);
}
我正在尝试创建看起来更像这样的代码(VERY GENERIC):
<input name="generatedString_1234567890" ng-hide="true" ng-model="input.uniqueKey">
<div special-input="time" ng-model="input.uniqueKey">
<select ng-repeat="hour in hours">
<select ng-repeat="minute in minutes">
</div>