什么时候应该使用角度$watch函数和何时使用ng-changeangularjs指令?对我来说,他们都可以这样做.
它们之间是否存在差异或使用模式?
如何从javascript中的字符串路径获取文件名?
这是我的代码
var nameString = "/app/base/controllers/filename.js"; //this is the input path string
Run Code Online (Sandbox Code Playgroud)
在这里做一些事情只获取文件名
var name = ??? //this value should equal to filename.js
Run Code Online (Sandbox Code Playgroud) 我有一个字典列表,列表中的所有字典都具有相同的结构.例如:
test_data = [{'id':1, 'value':'one'}, {'id':2, 'value':'two'}, {'id':3, 'value':'three'}]
Run Code Online (Sandbox Code Playgroud)
我想value从列表中的每个字典中获取每个项目:
['one', 'two', 'three']
Run Code Online (Sandbox Code Playgroud)
我当然可以遍历列表并使用for循环提取每个值:
results = []
for item in test_data:
results.append(item['value'])
Run Code Online (Sandbox Code Playgroud)
但是我的数据集非常大.我想知道是否有更快的方法.
我正在编写一个简单的AngularJS控制器来跟踪检查的复选框的数量.试图避免$scope.$watch使用ng-change增加/减少总计数.
HTML:
<form ng-controller="MainCtrl">
<table>
<tr ng-repeat="item in data">
<td>
<input type="checkbox"
value="{{item.id}}"
ng-model="item.selected"
ng-change="updateTotal($event)"> {{item.name}}
</td>
</tr>
</table>
<p>
Total checked: {{totalSelected}}
</p>
</form>
Run Code Online (Sandbox Code Playgroud)
控制器片段
$scope.updateTotal = function($event) {
var checkbox = $event.target;
if (checkbox.checked) {
$scope.totalSelected++;
}
else {
$scope.totalSelected--;
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在尝试访问的控制器中收到错误$event.target:
TypeError: Cannot read property 'target' of undefined
Run Code Online (Sandbox Code Playgroud)
我创建了一个用于重新创建的Plunk:http://plnkr.co/edit/qPzETejmMHHZCQ2sV2Sk?p = info
如果有人有任何想法或建议,我将非常感激.
非常感谢你!
我不知道如何从django模型,django.contrib.auth.models.User获取用户,通过id ...我想删除一个用户,所以我试图找到它:
User.objects.get(id=request.POST['id'])
Run Code Online (Sandbox Code Playgroud)
但它不起作用,并且返回
User matching query does not exist.
Run Code Online (Sandbox Code Playgroud)
id由ajax发送:
$("#dynamic-table").on('click','.member_delete_btn', function() {
if (confirm("Are you sure? the member will be deleted...") == true) {
$.ajax({
type: "POST",
url: "/panel/member/delete/",
data: { id: $(this).attr('data-id'), 'csrfmiddlewaretoken': '{{ csrf_token }}' },
success: function (data) {
if(data.success) {
$('#result').html('<div class="alert alert-success"> <strong>Well done!</strong> Member deleted.</div>');
list_members();
}else{
$('#result').html('<div class="alert alert-warning"> <strong>Warning!</strong> Member not deleted.</div>');
}
},
error: function (data) {
alert("failure:" + data.error);
}
});
}
else {
return false;
}
return …Run Code Online (Sandbox Code Playgroud) 盯着我的代码很长一段时间,我一直遇到同样的错误.有趣的是,我为我的模型的另一部分制作了一组类似的序列化程序,这些工作正常.
这是我不断得到的错误:
/onderhoudapi/conditiedeel/.json处的AttributeError在尝试获取
gebreken序列化程序上的 字段值时出现AttributeErrorConditiedeelSerializer.序列化程序字段可能名称不正确,并且与Conditiedeel实例上的任何属性或键都不匹配.原始异常文本是:'Conditiedeel'对象没有属性'gebreken'.
serializers.py
class GebrekSerializer(serializers.ModelSerializer):
class Meta:
model = Gebrek
fields = ('naam', 'get_type', 'get_omvang_waarde', 'get_intensiteit_waarde', 'get_ernst_waarde')
class ConditiedeelSerializer(serializers.ModelSerializer):
gebreken = GebrekSerializer(many=True, read_only=True)
class Meta:
model = Conditiedeel
fields = ('deel', 'conditiescore', 'gebreken', )
Run Code Online (Sandbox Code Playgroud)
models.py
class Conditiedeel(models.Model):
deel = models.OneToOneField(Deel, null=True, blank=True)
conditiegroep = models.ForeignKey(Conditiegroep)
conditiescore = models.IntegerField(choices=CONDITIE_KEUZES)
#some class methods here
class Gebrek(models.Model):
naam = models.CharField(max_length=80)
omvang = models.IntegerField(choices=OMVANG_KEUZES)
intensiteit = models.IntegerField(choices=INTENSITEIT_KEUZES)
conditiedeel = models.ForeignKey(Conditiedeel)
nengebrek = models.ForeignKey(Nengebrek)
#class methods here …Run Code Online (Sandbox Code Playgroud) 这是我的Django模型:
from django.db import models
class MyModel(models.Model):
a = models.IntegerField()
b = models.IntegerField()
c = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
我想取出这个模型中的所有实例a = 5和b + c > 10。我该怎么做?
当我尝试这个:
print MyModel.objects.filter(a=5).extra(
select={"total_count": "b + c"},
where=["total_count > 10"],
)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
OperationalError: (1054, "Unknown column 'total_count' in 'where clause'")
Run Code Online (Sandbox Code Playgroud) 有人可以解释一下angular.merge和angular.extend之间的区别.深拷贝意味着什么以及何时应该使用它?
让我说我有这个代码:
def dosomething(thing1, thing2=hello, thing3=world):
print thing1
print thing2
print thing3
Run Code Online (Sandbox Code Playgroud)
我希望能够指定什么东西3,但不必说什么东西2.(下面的代码是我认为它可能会起作用的方式......)
dosomething("This says 'hello fail!'", , 'fail!')
Run Code Online (Sandbox Code Playgroud)
它会说
This says 'hello fail!'
hello
fail!
Run Code Online (Sandbox Code Playgroud)
那么有没有办法像这样做,或者我必须指定thing2每次我想说什么thing3?
我正在使用python2,如果这很重要.
尝试运行函数时收到此错误.这是我的第一个django/python项目,所以我没有经验.我已经搜索过这个错误,但没有找到类似的东西.
def getpriority(chunks):
p = 0
for chunk in chunks:
a = chunk.result_set.all()
l = a.latest()
if pytz.utc.localize(datetime.now()) - l.timestamp > datetime.timedelta(days=3):
x = getresult(chunk)
print(x)
Run Code Online (Sandbox Code Playgroud)
我正在尝试为我的Chunk模型分配优先级,以便我可以选择具有最高优先级的Chunk来使用该对象.
我相信我的错误在于呼唤latest()'a'.
当我在django shell中运行Chunk.result_set.latest()时,我收到以下错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'ReverseManyToOneDescriptor' object has no attribute 'latest'
Run Code Online (Sandbox Code Playgroud)
在我的Result模型中,我设置了get_latest_by,我认为需要运行.latest():
class Result(models.Model):
rel_chunk = models.ForeignKey(Chunk, on_delete=models.CASCADE)
score = models.IntegerField()
timestamp = models.DateTimeField(auto_now_add=True)
class Meta:
get_latest_by = 'timestamp'
Run Code Online (Sandbox Code Playgroud)
我相信错误在于我在相关对象集上调用最新但如果无法在相关对象集上调用,那么如何才能找到最新的相关结果?
python ×5
django ×4
javascript ×4
angularjs ×3
checkbox ×1
dictionary ×1
list ×1
orm ×1
regex ×1
string ×1