[英]ng-click not firing with django/angular
我有一个由Django渲染的模板,并且正在尝试添加一些带有angular的js行为。 真痛苦
这是表格。 ng_controller
是django上下文变量,由我的观点设置。
<form method="POST" action="#" ng-controller="{{ ng_controller }}" >
<a href="#" ng-click="search('{% url 'appname:search' %}')" class="button">Search</a>
<a href="#" ng-click="add()" class="button">Add</a>
<div class="small-12 large-4 columns content-box">
<h4>Search Results</h4>
<div class="small-12.large4" id="search_results" >
</div>
单击“搜索”按钮将按预期工作,这是功能
search: (search_url) =>
console.log "Searching..."
success = (result) ->
$("#search_results").replaceWith(result.data)
error = (result) ->
console.log "Error: #{result}"
url = "#{search_url}/?#{form_data}"
@$http.get(url).then(success, error)
问题是在#search_results元素中正确换出的result.data包含不触发的ng-click
指令
<a href="#" ng-click="foo()" class="button" >Do Foo</a>
<a href="#" ng-click="console.log('foo');" class="button">Log Foo</a>
当这些元素在那里时(单击搜索之后),除了根据锚元素跳到页面顶部之外,它们什么也不做。 没有错误或任何东西。 (出于参数考虑, foo()
只会调用console.log 'foo'
我的怀疑是,因为这些指令是在页面加载之后添加的,所以它们实际上并没有按角度进行连接。 那是正确的吗? 如果那是问题,我如何才能让他们在此方案中编译指令,否则将获得我正在寻找的行为? 我了解在使用Angular时通过jQuery处理DOM存在问题,因此,我很高兴提出一些建议,可以通过使替换代码更加惯用来解决该问题,只要它可以通过对Django端点的AJAX请求来解决。
事实证明,我是正确的,并且未编译结果。 这是明确汇编结果的问题。
上面的成功回调被替换为:
success = (result) =>
search_results = $(result.data)
$("#search_results").replaceWith(search_results)
@$compile(search_results)(@$scope)
我还将$ compile提供程序注入了控制器类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.