繁体   English   中英

ng-click不使用django / angular触发

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM