Angularjs ng重复不';当从组件指令添加项时不更新
我的代码有问题,但找不到,我更新了一个数组,但它没有在我的主视图中更新 这是我的密码Angularjs ng重复不';当从组件指令添加项时不更新,angularjs,arrays,angularjs-ng-repeat,Angularjs,Arrays,Angularjs Ng Repeat,我的代码有问题,但找不到,我更新了一个数组,但它没有在我的主视图中更新 这是我的密码 app.controller("MainCtrl", function ($scope, $http) { $scope.user = []; $scope.adduser = function (fuser, luser) { var name = { fname: fuser, lname: luser } // debugger; $scop
app.controller("MainCtrl", function ($scope, $http) {
$scope.user = [];
$scope.adduser = function (fuser, luser) {
var name = { fname: fuser, lname: luser }
// debugger;
$scope.user.push(name);
};
用户信息
{{name.fname}
名字:
姓氏:
添加
controllerAs
语法使控制器功能可用此
(上下文)可通过其别名访问,此处为c
。使用controllerAs
语法时,绑定值应绑定到控制器函数上下文(this
)。在controllerAs
方法中,应避免在控制器中使用$scope
。即使在调用adduser
方法时,也可以通过控制器别名调用它c.adduser
代码
app.controller("MainCtrl", function ($http) {
var c= this;
c.user = [];
c.adduser = adduser;
function adduser(fuser, luser) {
var name = { fname: fuser, lname: luser }
// debugger;
c.user.push(name)
};
})
您需要在指令中传递变量
<userinfo user='user'></userinfo>
早些时候,我没有使用“controllerAs”语法进行编码,我怎么能在没有“controllerAs”语法的情况下进行编码呢that@Lakmi你这是什么意思。。我再也不想回到控制器中使用
$scope
。使用controllerAs
语法使您离角度偏移又近了一小步..我使用了您的代码,但它对我不起作用。我更新了我的代码这是我以前编码的方式。那一种也不是working@Lakmi你说没用是什么意思?您是否错过了将adduser
的用法更改为c.adduser()
控制台中是否有错误?否,在您的示例中没有错误您不调用函数$scope.adduser
-您确定$scope.user
数组中有用户吗?我直接调用该方法我认为这就是原因-您的视图不知道新数据,因为您从另一个范围触发它们。您是否尝试在$scope.user.push(名称)下添加$scope.$apply()
代码>?在这里,您可以找到这样一个例子,我们是否应该寻找另一个解决方案,因为您不应该在正常的angularJS流中使用$apply。
app.controller("MainCtrl", function ($http) {
var c= this;
c.user = [];
c.adduser = adduser;
function adduser(fuser, luser) {
var name = { fname: fuser, lname: luser }
// debugger;
c.user.push(name)
};
})
<userinfo user='user'></userinfo>
scope: {
user: '='
}