ng点击没有用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提供程序注入到控制器类中。
相关文章:
- Angular JS IE9 Hashbang url rewriting
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 使用angular重定向到html页面
- angular.js没有'无法在PhoneGap中处理视图标记
- Javascript(Angular)从一个对象数组到第二个数组查找值
- angular 1.5应用程序中的导航栏
- angular的下拉菜单
- Angular只从数组中获取所需的数据
- 如何将不可变的js导入angular 2(alpha)
- Angular js-返回一个包含类似
- 如何使用 Angular JS 将数据保存在数据库中
- 将JSON对象传递给angular指令
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- Angular:更新一次性绑定的数据
- 模拟Angular中的承诺:'那么'不开火
- 动态HTML包括一个Angular'ng单击'获胜的属性'不要开火
- angular$watch-can'当集合是相同的变量时,不要让手表开火
- ng点击没有用django/angular开火