新手问题 问个 angularjs ajax 的问题

dayed · 2014年01月13日 · 最后由 aptx4869 回复于 2014年01月14日 · 4417 次阅读
<!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 不会,求教下

这思路不对,别管 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

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