Javascript AngularJS在wordpress管理小部件窗体中使用时不更新视图
我试图使用AngularJS为wordpress小部件的管理视图构建一些自定义表单组件,但我似乎无法在所有气缸上实现角度触发 我在插件中包括angular和我的自定义JS,因此: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.
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;