问题:can't访问html模板AngularJS中的Json数据
ISSUE: can't access Json data inside the html template, AngularJS
我使用AngularJS 1.5.x和Angular Material的组合。我的数据存储在..中/JSON/data.JSON,我正在python3localhost服务器中测试整个过程。
数据被正确检索并显示在谷歌Chrome控制台中
我有一个HTML模板
<md-tab label="one" class="material-tab">
<md-content class="md-padding" layout="column" layout-align="center center">
<md-card class="card-tab card-bg">
<md-card-title>
<md-card-title-text>
<span class="md-headline"> {{vm.info[0].tab}} Bone Bone</span>
<span class="md-subhead">Text</span>
</md-card-title-text>
<md-card-title-media>
<img class="md-media-lg" src="../IMG/favicon.png" />
</md-card-title-media>
</md-card-title>
<md-card-actions>
<md-button class="md-raised md-primary">See More</md-button>
<md-button class="md-raised md-warn">Full List</md-button>
<md-button class="md-raised md-primary button-right">Email</md-button>
</md-card-actions>
</md-card>
</md-content>
</md-tab>
我有一个js指令和控制器连接到它
(function() {
angular
.module('webApp')
.controller('showcaseController', showcaseController)
.directive('boneShowcaseTab', boneShowcaseTab);
showcaseController.$inject = ['$http'];
function showcaseController($http) {
var vm = this;
vm.info = [];
$http.get('../JSON/data.json').success(function(response) {
console.log("Loaded data.json");
console.log(JSON.stringify(response)); // TODO remove
vm.info = response.data.information;
});
};
function boneShowcaseTab($http) {
return {
restrict: 'E',
templateUrl: '../TEMPLATES/tabs.html',
controller: 'showcaseController',
controllerAs: 'tabs'
};
};
})();
然而,当我尝试访问json数据{{vm.info[0].tab}}时,没有显示任何内容。
更重要的是,当我尝试将ng repeat附加到md选项卡时,整个东西就会消失。以下是我参考指令的方式
<md-tabs flex md-dynamic-height md-border-bottom md-stretch-tabs="always"> <bone-showcase-tab></bone-showcase-tab> <!-- CUSTOM TABS -->
</md-tabs>
所以。。。问题是…我在哪里犯的错?
附言:我还是Angular的新手,所以请原谅任何"坏代码"。
附言:ng重复逻辑还没有出现,因为我在访问JSON数据时遇到了问题:)
p.p.p.S无法访问任何变量。即使我创建了一个测试vm.test = "test"
,我也无法以任何方式访问它。
建议:在干扰指令之前,请了解什么是$scope以及如何监视和呈现值。
当您创建指令时,您的指令定义如下:
function boneShowcaseTab($http) {
return {
restrict: 'E',
templateUrl: '../TEMPLATES/tabs.html',
controller: 'showcaseController',
controllerAs: 'tabs'
};
};
当使用此指令时(正如您正确地做的那样),您将使用父级的相同作用域(因为您没有为该指令创建新作用域;这就是为什么我鼓励您在进一步处理此问题之前仔细阅读有关作用域、父级和隔离的内容)。此外,在作用域中(它将作为您正在使用的作用域或使用隔离的作用域工作),您创建了一个新变量tabs
作为当前控制器的别名(这不是必需的,但可能是一个好的做法)。因此,在您呈现的html(在指令模板中)中,您将可以访问:
{{ tabs.something }}
如果分配给控制器,将访问something
成员。
在控制器代码中,vm
是对this
的引用,而this
将别名为tabs
,因此通过传递性。。。代码中的vm
将在模板的html内容中别名为tabs
。所以你要找的是…
{{ tabs.info[0].tab }}
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 从Javascript和Php变量创建Html模板文档
- 用JavaScript替换Android WebView模板上的html文本
- 在哪里存储HTML模板以在Backbone.js中使用
- 在树枝模板上从数据库中解压缩HTML字符串
- 在angularjs中将html项插入到现有模板HTML中有什么奇怪的方法
- 引用Cordova/Onsen中的模板HTML元素
- 为 json 数据制作模板 html
- 无法在Angular指令的Karma测试中加载模板HTML文件
- 理解angularjs中的路由和模板html,简单的例子是可能的
- 在应用程序代码上运行Google Closure编译器后,更新AngularJS模板HTML
- Sammy.js如何禁用缓存模板html
- AngularJS如何异步遍历Angular模板(HTML+AngularJS指令)
- 模板html/javascript/css的iphone.需要在UIWebView中运行它
- 如何在angular js中把自定义指令包含到另一个自定义指令的模板(html)中
- 为什么我的ui-view不显示我的模板html文本?
- 是否有任何方式如何下载引导模板(HTML)从他们所做的,并在他们的官方网站上显示为例
- Angular JS-点击按钮,从指令加载一个模板html
- Knockout JS模板HTML不能正确渲染
- 使用text.js与require.js我如何创建一个模板html文件,但单独抓取每个脚本模板