第1点
我只是不明白为什么我无法以这种方式{{$scope.parentcities}}
访问子控制器属性。但如果我这样写{{parentcities}}
那么它就会起作用。那么为什么我们不能写$scope dot and then property name
<div ng-app ng-controller="ParentCtrl">
<div ng-controller="ChildCtrl as vm">
{{$parent.cities}}
<br>
{{$scope.parentcities}}
</div>
</div>
function ParentCtrl($scope) {
$scope.cities = ["NY", "Amsterdam", "Barcelona"];
}
function ChildCtrl($scope) {
$scope.parentcities = $scope.$parent.cities;
}
需要一些指导线,ChildCtrl是什么样的语法作为vm?
当我们需要在html ChildCtrl中提到控制器像这样的vm?
它有什么特殊意义吗?
寻求一些指导。感谢答案 0 :(得分:1)
嗯,$ scope的要点是,在将值绑定到视图时,您不需要编写它。因此,$scope.supervalue = 'Hallo'
将在此视图中访问{{ supervalue }}
$parent
。就是这样。
var self = this;
self.supervariable = 'Hallo';
是从Angular框架到reference the parent scope的关键字。
使用controllerAs语法来完全摆脱$ scope关键字。所以在控制器内部,你可以这样写:
controllerAs: 'vm'
在此路线的配置中,您指定{{ vm.supervariable }}
。因此,您可以通过controllerAs
在视图中访问您的值。 Have a look here了解所有相关信息。
但是,在你深入研究oList.bindItems({
path: "/ProductCollection",
template: new sap.m.StandardListItem({
title: "{Name}",
description: "{ProductId}",
icon: "{ProductPicUrl}"
})
});
之前,你似乎应该先做一些基础工作并了解基本的角度机制,后面有一些棘手的部分。
答案 1 :(得分:0)
只要您要使用fieldAppearance.setNormalCaption("Click Me");
语法,请为Ctrl as c
变量指定值
this
function ParentCtrl($scope) {
$scope.cities = ["NY", "Amsterdam", "Barcelona"];
}
function ChildCtrl($scope) {
this.parentcities = $scope.$parent.cities;
}