我假设您发布的html是一个模板,它是主题或插件的一部分,您可以在其中与页面加载例程进行交互。
您不需要加载jQuery,它已经由WordPress加载。相反,您应该利用脚本加载系统。wp\\u enqueue\\u脚本中的第三个参数表示依赖关系:我的应用程序需要加载angular,angular需要加载jQuery。
<?php
add_action( \'get_header\', \'add_to_header\');
function add_to_header () {
add_action( \'wp_enqueue_scripts\', \'add_my_scripts\');
}
function add_my_scripts () {
wp_enqueue_script(\'angular\', \'https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js\', array( \'jquery\' ));
// you could load your angular app script here from a separate file, like:
wp_enqueue_script(\'my-app\', \'path/to/my-app.js\', array( \'angular\' ));
}
?>
通过查看您的页面,我看不出您需要多个控制器或多个区域列表区域的原因。关闭样式和jQuery脚本,将您的选择放置在控制器范围内,并为每个选项设置一个值:
<select ng-model="region" ng-change="load(region)">
<option value="northwest">NorthWest</option>
...
</select>
然后,您的控制器应具有仅在需要时加载区域数据的功能:
var url = \'http://scd.blaze.wpengine.com/wp-json/posts?type=listings&filter[listing_area]=\';
$scope.data_ready = false;
$scope.load = function (region) {
$http.get(url + region).then(function(data) {
$scope.data = data.data;
$scope.data_ready = true;
});
data\\u ready变量将隐藏或显示您的列表区域:
<div ng-show="data_ready">
<div ng-repeat="d in data">
...
随着加载的数据发生变化,列表区域的内容也会发生变化。