【发布时间】:2016-03-18 11:49:26
【问题描述】:
我有一个对象数组,我正在使用 ng-repeat 对其进行迭代,其中包含一个 ng-click,它从数组中发送对象并将其发送回支持控制器中的某个随机函数,如下所示:
PLUNKERR:http://plnkr.co/edit/Chvx59rRhGFwX2ImHQva
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title>Profile Screen</title>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.css" rel="stylesheet">
<link href="http://code.ionicframework.com/1.0.0-rc.1/css/ionic.min.css" rel="stylesheet">
<link href="http://code.ionicframework.com/1.0.0-rc.1/css/ionic.css" rel="stylesheet">
<script src="http://code.ionicframework.com/1.0.0-rc.1/js/ionic.bundle.js" ></script>
<script src="http://code.ionicframework.com/1.0.0-rc.1/js/angular-ui/angular-ui-router.js" ></script>
<script>
angular.module('controllers', []);
angular.module('application', ['ionic', 'controllers','ui.router'])
.controller('ProfileCtrl',function($scope,$ionicModal) {
$scope.editMode = false;
$scope.person = { aliases : [] };
$scope.person.aliases.push({ firstName: 'Dave', lastName: 'Smith'});
$scope.person.aliases.push({ firstName: 'Davey', lastName: 'Smith'});
$scope.person.aliases.push({ firstName: 'David', lastName: 'Smith'});
$scope.startStopEditProfile = function(status){
$scope.editMode = status;
}
$scope.deleteEntry = function(type,entity) {
console.log(type,entity);
alert("deleting "+ entity.firstName);
}
})
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('profile',{
url: "/profile",
templateUrl: "profile.html",
controller: "ProfileCtrl",
})
$urlRouterProvider.otherwise('/profile');
});
</script>
<script type="text/ng-template" id="profile.html">
<ion-view>
<div class="bar bar-header">
<div class="h1 title">My Profile</div>
<button class="button button-stable asdf-done-button" ng-click="editMode = !editMode">{{editMode ? 'Done' : 'Edit'}}</button>
</div>
<ion-content style="background: #EBEBEB" class="has-header" has-bouncing="true">
<div id="profileSection">
<ion-item ng-class="editMode ? 'asdf-profile-row-edit' : 'asdf-profile-row-view'">
<div class="asdf-table-row-right">
<label>
<div ng-if="editMode" ng-repeat="alias in person.aliases track by $index">
<span>
{{$index}} - {{alias.firstName + ' ' + alias.lastName}}
<button ng-click="deleteEntry('alias',alias)" >X</button>
</span>
</div>
<p ng-if="!editMode" ng-repeat="alias in person.aliases">
{{alias.firstName + ' ' + alias.lastName}}
</p>
</label>
</div>
</ion-item>
</div>
</ion-content>
</ion-view>
</script>
</head>
<body ng-app="application">
<ion-nav-view>
</ion-nav-view>
</body>
</html>
点击右上角的编辑, “X”出现在名称旁边。 每次您单击任何“X”按钮时,它都会单击第一个和实际单击的那个...它很快,但如果您观看它就可以看到它...
对不起,我已经尽我所能把它瘦下来了……
再次感谢..
【问题讨论】:
-
一个简单的演示插件?
-
提供控制器代码。
-
我创建了 pluker,一切正常plnkr.co/edit/qxen8t1kWoRRZzdzBsoT。请检查。
-
正如多人提到的那样,您所描述的内容无法通过您提供的代码重现。如果您可以创建一个最小的、完整的、可验证的行为示例,您将得到比“我复制了您的代码并且它工作正常”更好的答案。 stackoverflow.com/help/mcve
-
我明白。我会尝试将其缩小并在应用程序之外重现......这有点痛苦,但如果我需要帮助,我需要......感谢您的回复......
标签: javascript html angularjs ionic-framework