我想使用适当的依赖注入MyCtrl1来注入MyCtrl1.resolve对象的字段.我尝试了许多不同的尝试注射@MyCtrl1.resolve等组合,没有运气.
@MyCtrl1 = ($scope, $http, batman, title) ->
$scope.batman = batman.data
$scope.title = title.data
@MyCtrl1.resolve = {
batman: ($http) ->
$http.get('batman.json')
title: ($http) ->
$http.get('title.json')
}
#@MyCtrl1.$inject = ['$scope', '$http'] -- commented out because not sure how to inject resolve fields
angular
.module( 'app', [])
.config( ['$routeProvider', '$locationProvider', ($routeProvider, $locationProvider)->
$locationProvider.html5Mode(true)
$routeProvider.when('/', {templateUrl: 'index.html', controller: MyCtrl1, resolve: MyCtrl1.resolve})
$routeProvider.otherwise({redirectTo: '/'})
])
angular.bootstrap(document,['app'])
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个允许用户编辑模型实例的视图(在这种情况下是一个事件).不幸的是,提交此表单会创建一个新实例(带有新ID),甚至不会删除旧实例.我的印象是在这种情况下save方法应该更新实例...
注意:EventForm是一个ModelForm
我已尝试使用force_update arg按https://docs.djangoproject.com/en/dev/ref/models/instances/#forcing-an-insert-or-update,但没有骰子.我也试过删除form.is_valid()块中的原始事件(通过调用event.delete())但是......没有骰子.
我觉得这commit=False是问题吗?我不确定!
谢谢.
(请忽略代码段中的间距问题)
def edit_event(request, event_id):
event = Event.objects.get(pk=event_id)
if request.method == 'POST':
post_data = request.POST.copy()
# here is some validation that can't be done in the ModelForm...
#form = EventForm(post_data, request.FILES, instance=event)
form = EventForm(post_data, request.FILES)
if form.is_valid():
edited_event = form.save(commit=False)
edited_event.save(force_update=True) # doesn't work with or without force_update arg
#form.save_m2m() # needed for ManyToMany relationship
return HttpResponseRedirect('/events/view/%s' % edited_event.id)
else:
form = EventForm(instance=event)
return render_to_response('create_event.html', {'form': …Run Code Online (Sandbox Code Playgroud) 我很难弄清楚这里出了什么问题:
class iterate():
def __init__(self):
self.length=1
def iterated(self, n):
if n==1:
return self.length
elif n%2==0:
self.length+=1
self.iterated(n/2)
elif n!=1:
self.length+=1
self.iterated(3*n+1)
Run Code Online (Sandbox Code Playgroud)
例如,
x=iterate()
x.iterated(5)
Run Code Online (Sandbox Code Playgroud)
输出None。它应该输出 6 因为长度看起来像这样:5 --> 16 --> 8 --> 4 --> 2 --> 1
进行一些调试后,我看到self.length正确返回,但递归中出现问题。我不太确定。谢谢你的帮助。