新手问题 问个 angularjs ajax 的问题

dayed · 2014年01月13日 · 最后由 aptx4869 回复于 2014年01月14日 · 3500 次阅读
<!doctype html>
<html ng-app="app">
<head>
    <script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js"></script>
</head>
<body>
    <div ng:controller="list">
        <div class="message">
            message
        </div>
        <input class="test" type="button" value="test" ng-click="callajax()">
    </div>
</body>
</html>

<script>
    var app = angular.module('app',[]);
    app.controller('list',function($scope,$element,$http){
            $scope.testvalue = "matt";
            $scope.callajax = function(){
                    $http.get('ajax.php').success(function(data){
                            $element.parent().find('.message').html(data);
                    });
            }       
    });

</script>

ajax.php
<input type="text" ng-model="testvalue">

我点击test,ajax去,获取的不会被填充啊,我用knockout会重新编译,angularjs不会,求教下

共收到 9 条回复

这思路不对,别管dom,数据优先,忘掉jquery那一套吧

先把第四行去掉.

Angular.js里面

$element.parent().find('.message').html(data);

这个是不需要的,建议的是双向的数据自动绑定, 而不是手动更新。

{{message}}

$scope.message = data

#3楼 @winnie 但是这样的话就是字符串了,不是html元素了

#5楼 @winnie 不可以的,会变成字符串

#6楼 @dayed

<div class="message" ng-bind-html="message"></div>

印象中ng-bind-html 这个指令要引入 sanitize 模块,太久没玩忘了

#7楼 @saiga 现在改成ng-bind-unfsafe了

#8楼 @dayed 你这版本不是用的angular1.2.6么……1.2早就去掉ng-bind-unsafe了吧……现在是用ng-bind-html,需要导入angular-sanitize,然后如果内容确认是服务器处理过没问题的,可以在controller里注入$sce 然后用 $sce.trustAsHtml

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册