Angular 更改服务中变量的值
我正在Angular中创建一个应用程序,希望通过服务更改变量的值 #函数Angular 更改服务中变量的值,angular,Angular,我正在Angular中创建一个应用程序,希望通过服务更改变量的值 #函数 hide(menu) { console.log(menu) if (menu == true) { menu = false } else { menu = true } } 主成分分析 hide_menu() { hide(this.menu) } 在这种情况下,我可以在控制台中看到菜单为true,但值不会更改。您的服务方法应该返回一个值 hide(menu) { c
hide(menu) {
console.log(menu)
if (menu == true) {
menu = false
} else {
menu = true
}
}
主成分分析
hide_menu() {
hide(this.menu)
}
在这种情况下,我可以在控制台中看到菜单为true,但值不会更改。您的服务方法应该返回一个值
hide(menu) {
console.log(menu)
if (menu == true) {
menu = false
} else {
menu = true
}
return menu;
}
然后需要在此处赋值:
hide_menu() {
this.hide = hide(this.menu);
}
若菜单是一个对象,你们可以“通过引用”传递它。但是如果它的布尔值在函数之外不会改变。这里描述得很好:您的服务方法应该返回一个值
hide(menu) {
console.log(menu)
if (menu == true) {
menu = false
} else {
menu = true
}
return menu;
}
然后需要在此处赋值:
hide_menu() {
this.hide = hide(this.menu);
}
若菜单是一个对象,你们可以“通过引用”传递它。但是如果它的布尔值在函数之外不会改变。这里描述得很好:布尔是一种基本类型,如字符串、数字、未定义或null。基元类型是不可变的。如果修改作为基元类型的方法参数,则它不会影响原始值(
(在main component.ts中)
)。作为对象、数组或映射的引用类型是可变的,因此当您修改副本(方法参数)时,原始类型也将通过引用进行修改
在您的情况下,应该返回值并将其分配到main component.ts
hide(menu) {
return !(menu == true) // shortened form but result is the same
}
hide_menu() {
this.isHidden = hide(this.menu);
}
Boolean是字符串、数字、未定义或null等基本类型。基元类型是不可变的。如果修改作为基元类型的方法参数,则它不会影响原始值(
(在main component.ts中)
)。作为对象、数组或映射的引用类型是可变的,因此当您修改副本(方法参数)时,原始类型也将通过引用进行修改
在您的情况下,应该返回值并将其分配到main component.ts
hide(menu) {
return !(menu == true) // shortened form but result is the same
}
hide_menu() {
this.isHidden = hide(this.menu);
}
在不掌握语言本身的情况下直接跳入框架(例如Angular)确实是个坏主意。如果我可以建议的话,暂缓使用Angular,并仔细阅读Kyle Simpson的“你不懂JavaScript”一两次。在没有掌握语言本身的情况下直接跳入框架(例如Angular)确实是个坏主意。如果我可以建议的话,暂时搁置Angular,看一两遍Kyle Simpson的“你不懂JavaScript”。