Javascript 在不使用angular.element(Angularjs)的情况下设置另一个控制器范围变量
我有以下几个部门Javascript 在不使用angular.element(Angularjs)的情况下设置另一个控制器范围变量,javascript,angularjs,Javascript,Angularjs,我有以下几个部门 <div ng-controller="MyController as MC" id="div1"> <a href="#" id="1" ng-init="MC.EntityId = 1 , MC.EntityType =
<div ng-controller="MyController as MC" id="div1">
<a href="#" id="1" ng-init="MC.EntityId = 1 , MC.EntityType = 57" ng-click="MC.LoadFiles(MC.EntityId, MC.EntityType)" title="Upload">Upload </a>
</div>
<div ng-controller="MyController as MC" id="div2">
EntityId = {{MC.Entity.EntityId}}, EntityType = {{MC.Entity. ntityType}}
</div>
您应该创建一个服务,然后将其注入两个控制器,然后在该服务中保存和检索您的实体您需要使用一个对象才能这样做。
<div ng-controller="MyController as MC" id="div2">
EntityId = {{MC.Entity.EntityId}}, EntityType = {{MC.Entity. ntityType}}
</div>
双向数据绑定不适用于基元类型
<div ng-controller="MyController as MC" id="div2">
EntityId = {{MC.Entity.EntityId}}, EntityType = {{MC.Entity. ntityType}}
</div>
执行以下更改
app.controller('MyController', function () {
this.Entity = {EntityId:0,EntityType:0};
this.LoadFiles = function (objEntity){
this.Entity.EntityId = objEntity.EntityId;
this.Entity.EntityType = objEntity.EntityType;
}
});
<div ng-controller="MyController as MC" id="div2">
EntityId = {{MC.Entity.EntityId}}, EntityType = {{MC.Entity. ntityType}}
</div>
HTML:
<div ng-controller="MyController as MC" id="div1">
<a href="#" id="1" ng-init="MC.Entity.EntityId = 1 , MC.Entity.EntityType = 57" ng-click="MC.LoadFiles(MC.Entity)" title="Upload">Upload </a>
</div>
<div ng-controller="MyController as MC" id="div2">
EntityId = {{MC.Entity.EntityId}}, EntityType = {{MC.Entity. ntityType}}
</div>
检查相关的,可能重复的为什么你说另一个控制器范围?只有一个控制器您需要使用对象才能进行双向数据绑定。双向数据绑定不适用于基元类型。如果您使用$scope.EntityId,它就可以工作。我从不使用它,因为MC.Entity作用域被限制为div1。两个控制器都是相同的。它是类型错误还是真的相同?如果是ng init=。。在div1中,这意味着两个控制器是相同的。这不是一个类型错误,那么为什么需要单击事件来调用和更新同一控制器下的同一个变量?为什么需要DOM中的ng init?
<div ng-controller="MyController as MC" id="div2">
EntityId = {{MC.Entity.EntityId}}, EntityType = {{MC.Entity. ntityType}}
</div>