我想知道是否有办法以这种方式构建一个自定义Element指令以与ng-repeat一起使用:
<div class="list">
<my-custom-directive class="item item-icon-right" ng-repeat="a in concepts">
<p>{{::a.label}}</p>
<i class="icon ion-forward muted"></i>
</my-custom-directive>
</div>
my-custom-directive
如果a.href
存在,则应在锚点中进行编译,如果不存在则>> 。
问题基本上只是设计:我有一些没有href的项目,但它们仍然应该在列表中。在Ionic1中,看起来我可以执行div
列表或a
列表,但不会在不破坏列表设计的情况下进行混合..
答案 0 :(得分:1)
当然可以。像这样:
<my-custom-dir ng-repeat="a in concepts"></my-custom-dir>
其中,指令就像,
app.directive('myCustomDir', function() {
return {
restrict: 'E',
templateUrl: 'custom.html'
}
})
并且custom.html
模板,
<p ng-hide="a.href">{{::a.label}}</p>
<a ng-href="{{a.href}}" ng-show="a.href">{{::a.label}}</a>
<i class="icon ion-forward muted"></i>
另外,我保持$scope.concepts
有虚拟对象,如下所示,
$scope.concepts = [{
href: 'eample.com',
label: 'example'
}, {
label: 'example1'
}, {
href: 'eample2.com',
label: 'example2'
}]
尽管如此,我认为您div.item
内应该ng-repeat
.list
div.item
。在$(document).ready(function () {
$('button.open-modal').on('click', function (e) {
// Make sure the click of the button doesn't perform any action
e.preventDefault();
// Get the modal by ID
var modal = $('#myModal2');
// Set the value of the input fields
modal.find('#edit-name').val($(this).data('task'));
modal.find('#edit-description').val($(this).data('description'));
modal.find('#edit-status').val($(this).data('done'));
// Update the action of the form
modal.find('form').attr('action', 'tasks/update/' + $(this).val());
});
});
你应该能够拥有你想要的任何东西(不确定ionic1如何处理它)