angularjs指令:不替换也不转换

时间:2014-12-15 21:11:45

标签: javascript jquery html angularjs

我需要在输入字段之后附加指令的模板。原始输入字段需要保留 - 我不能只创建它的副本。我想到的是,在控制器中,使用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>

0 个答案:

没有答案