Javascript AngularJS在wordpress管理小部件窗体中使用时不更新视图

Javascript AngularJS在wordpress管理小部件窗体中使用时不更新视图,javascript,angularjs,wordpress,Javascript,Angularjs,Wordpress,我试图使用AngularJS为wordpress小部件的管理视图构建一些自定义表单组件,但我似乎无法在所有气缸上实现角度触发 我在插件中包括angular和我的自定义JS,因此: wp_enqueue_script( 'angular', plugin_dir_url( __FILE__ ) . '/js/angular.min.js' ); wp_enqueue_script( 'featured_admin', plugin_dir_url( __FILE__ ) . '/js/admin.

我试图使用AngularJS为wordpress小部件的管理视图构建一些自定义表单组件,但我似乎无法在所有气缸上实现角度触发

我在插件中包括angular和我的自定义JS,因此:

wp_enqueue_script( 'angular', plugin_dir_url( __FILE__ ) . '/js/angular.min.js' );
wp_enqueue_script( 'featured_admin', plugin_dir_url( __FILE__ ) . '/js/admin.js' );
在我的
WP_Widget
类的
表单
函数中,我添加了以下标记:

<div ng-app='MyApp'>
    <div class="my-form" ng-controller="FormController">
        {{hello}}
    </div>
</div>
当我在wordpress中运行上述代码时,我在控制台中看到了“做点什么”,因此我相信模块和控制器都正确连接。但是,视图输出的是
{{hello}
,而不是范围中的变量


有没有人有过在wordpress中跑步的经验?我倾向于相信这与wordpress如何呈现其管理表单有关。有没有办法推迟角度代码的执行,直到我确定wordpress已经呈现了所有的表单?

使用手动增强作为替代方法:

/* Create script element */
var script = document.createElement('script');
/* Set src */
script.src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.1/angular.min.js";
/* Append to head */
document.getElementsByTagName("head")[0].appendChild(script);

function dothis()
  {    
  //template string
  var html = "<div class=\u0022my-form\u0022>{{$hello}}</div>";
  //template object
  var template = angular.element(html);
  //template transformer
  var compiler = angular.injector(["ng"]).get("$compile");
  //template result
  var linker = compiler(template);
  //scope object
  var scope = angular.injector(["ng"]).get("$rootScope");
  //scope assignment
  scope.hello = "hello world";
  //scope binding
  var result = linker(scope)[0];

  /* Append result to body */
  document.body.appendChild(result);

  /* Render */
  angular.bootstrap(document, ['ng']);
  }

script.onload = dothis;
/*创建脚本元素*/
var script=document.createElement('script');
/*设置src*/
script.src=”http://ajax.googleapis.com/ajax/libs/angularjs/1.3.1/angular.min.js";
/*附在头上*/
document.getElementsByTagName(“head”)[0].appendChild(脚本);
函数dothis()
{    
//模板字符串
var html=“{{$hello}}”;
//模板对象
var template=angular.element(html);
//模板转换器
var compiler=angular.injector([“ng”]).get(“$compile”);
//模板结果
var linker=编译器(模板);
//范围对象
var scope=angular.injector([“ng”]).get($rootScope”);
//范围分配
scope.hello=“hello world”;
//范围绑定
var结果=链接器(范围)[0];
/*将结果附加到正文*/
document.body.appendChild(结果);
/*渲染*/
引导(文档,['ng']);
}
script.onload=dothis;
/* Create script element */
var script = document.createElement('script');
/* Set src */
script.src = "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.1/angular.min.js";
/* Append to head */
document.getElementsByTagName("head")[0].appendChild(script);

function dothis()
  {    
  //template string
  var html = "<div class=\u0022my-form\u0022>{{$hello}}</div>";
  //template object
  var template = angular.element(html);
  //template transformer
  var compiler = angular.injector(["ng"]).get("$compile");
  //template result
  var linker = compiler(template);
  //scope object
  var scope = angular.injector(["ng"]).get("$rootScope");
  //scope assignment
  scope.hello = "hello world";
  //scope binding
  var result = linker(scope)[0];

  /* Append result to body */
  document.body.appendChild(result);

  /* Render */
  angular.bootstrap(document, ['ng']);
  }

script.onload = dothis;