javascript - Vue中基于多个值的条件渲染
问题描述
希望有人可以提供帮助,因为我已经为此苦苦挣扎了几天。
我是 Vue 新手,我的 JavaScript 技能相当平均。
我希望根据人们在数组中的工作角色显示一个颜色编码的图标。
绿色 - Array 包含开发人员和产品经理
黄色 - 数组容器开发人员
红色 - 阵列不包含开发人员或产品经理
该阵列被分组为团队并设置如下:
0 { 0 { name: Bob Sinclair
teamname: Francs
email: bob.sinclair@test.com
job: Product Manager
type: Team Member
}
}
1 { 0 { name: Neil Jones
teamname: Dream Team
email: neil.jones@test.com
job: Developer
type: Team Member
}
1 { name: Jim Cairns
teamname: Dream Team
email: jim.cairns@test.com
job: Product Manager
type: Team Member
}
2 { name: Craig Ferguson
teamname: Dream Team
email: craig.ferguson@test.com
job: Designer
type: Team Member
}
}
2 { 0 { name: Stuart Daly
teamname: SuperNova
email: stuart.daly@test.com
job: Developer
type: Team Member
}
1 { name: Martin Black
teamname: SuperNova
email: martin.black@test.com
job: Sales
type: Team Member
}
2 { name: Rebecca Forbes
teamname: SuperNova
email: craig.ferguson@test.com
job: Other
type: Team Member
}
}
这是我正在尝试做的当前 HTML:
<div class="card-footer">
<img class="group-image" v-for="(team, index) in teams" :key="team[0].teamname" v-if="developer == productManager" src="/Images/green%20group.png">
<img class="group-image" v-for="(team, index) in teams" :key="team[0].teamname" v-if="developer"src="/Images/yellow%20group.png">
<img class="group-image" v-for="(team, index) in teams" :key="team[0].teamname" v-if="neither" src="/Images/red%20group.png">
<a href="https://community.global.hsbc/sites/DigiHub/SitePages/Hack-Chat.aspx" target="_blank">
<img class="chat-image" src="https://community.global.hsbc/sites/DigiHub/SiteAssets/hub_assetts/Hack%20Teams/Images/chat.png">
</div>
这是我的 JS(3 个数据对象的 if 语句位于底部):
var appTeamCards = new Vue({
el: '#app-teams',
data: {
teams: [],
developer: false,
productManager: false,
neither: false
},
mounted: function() {
this.getTeams();
},
methods: {
getTeams: function() {
var self = this;
$.ajax({
url: '/sites/DigiHub/_api/web/lists/getbytitle(\'global-hackathon-reg\')/items?$orderby=Modified desc',
method: "GET",
headers: {
"Accept": "application/json;odata=verbose"
},
success: function (data) {
var posts = data.d.results;
readData(posts);
console.log(self.teams);
},
});
function readData(data) {
self.teams = groupBy(data, "teamname");
};
function groupBy(collection, property) {
var i = 0, val, index,
values = [], result = [];
for (; i < collection.length; i++) {
val = collection[i][property];
index = values.indexOf(val);
if (index > -1)
result[index].push(collection[i]);
else {
values.push(val);
result.push([collection[i]]);
}
// console.log(collection[i].hackertype);
if (collection[i].hackertype == "Developer") {
self.developer = true;
} else {
self.developer = false;
}
if (collection[i].hackertype == "Product Manager") {
self.productManager = true;
} else {
self.productManager = false;
}
if (collection[i].hackertype != "Product Manager" && collection[i].hackertype != "Developer") {
self.neither = true;
} else {
self.neither = false;
}
// console.log(self.developer);
// console.log(self.productManager);
// console.log(self.neither);
}
return result;
}
}
}
});
目前的代码不显示任何图标,我得到的唯一其他结果是它们都显示为绿色。
如果有人能指出我正确的方向,我将不胜感激。
提前致谢
解决方案
推荐阅读
- katalon-studio - 单击容器中的每个按钮
- c++ - DLL / Typelib / COM
- c++ - C++ 方法实现:我可以避免每次都输入类名吗?
- java - 无法从 Jar 运行 javaFX/Spring Boot 应用程序:未设置位置
- html - Why the login button is lower than the rest in my Html / Css navbar?
- mongodb - 带有 Mongo 聚合查询的新“千年虫”
- python - 带有 multi_class=="ovr" 的 sklearn roc_auc_score 应该没有可用的平均值
- jvm - Apache Storm:主管杀死并重新启动工作进程
- java - 如何将 MySQL 查询的结果映射到 java 模型类?
- visual-studio-code - VS Code Workspace 启动配置部分不起作用