Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AngularJS中成功的http请求上创建DOM元素_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 在AngularJS中成功的http请求上创建DOM元素

Javascript 在AngularJS中成功的http请求上创建DOM元素,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我已经定义了一个指令,其作用域中有函数createDOMWallPost。如果http请求进行顺利(服务器响应“OK”),则该函数将newWallPost附加到具有dynamic wall属性的元素 在控制器里我有 var newWallPost = $scope.newWallPost; $http.post("/backend/newWallPost", { newWallPost : newWallPost }).success(function(data)

我已经定义了一个指令,其作用域中有函数
createDOMWallPost
。如果http请求进行顺利(服务器响应“OK”),则该函数将
newWallPost
附加到具有
dynamic wall
属性的元素

在控制器里我有

var newWallPost = $scope.newWallPost;
$http.post("/backend/newWallPost",
    {
        newWallPost : newWallPost
    }).success(function(data){
        if(data == "OK"){
            $scope.createDOMWallPost(newWallPost);
        }
    });

这是可行的,但感觉这不是实现这一目标的正确方法。还有什么其他技术可以用于此?

您所做的更多的是jquery方式,而不是角度方式。 正如钱德尔马尼在评论中所说。跳过该指令,在发布新的wallPost返回json数据(包括API中的所有帖子)时,将返回的数据保存到$scope变量中,并使用ng repeat使用新帖子更新DOM

另外,在创建不在模板中执行的函数时,不需要使用$scope.varName=function(){}

一些快速伪代码

#Controller
var newWallPost = $scope.newWallPost;
$http.post("/backend/newWallPost",
    {
        newWallPost : newWallPost
    }).success(function(data){
        if(data == "OK"){
            $scope.wallPosts = data;
        }
    });

#Template
<p ng-repeat="post in wallPosts">{{ post.jsonKey }}</p>
#控制器
var newWallPost=$scope.newWallPost;
$http.post(“/backend/newWallPost”,
{
newWallPost:newWallPost
}).成功(功能(数据){
如果(数据==“正常”){
$scope.wallPosts=数据;
}
});
#模板

{{post.jsonKey}


您所做的更多的是jquery方式,而不是角度方式。 正如钱德尔马尼在评论中所说。跳过该指令,在发布新的wallPost返回json数据(包括API中的所有帖子)时,将返回的数据保存到$scope变量中,并使用ng repeat使用新帖子更新DOM

另外,在创建不在模板中执行的函数时,不需要使用$scope.varName=function(){}

一些快速伪代码

#Controller
var newWallPost = $scope.newWallPost;
$http.post("/backend/newWallPost",
    {
        newWallPost : newWallPost
    }).success(function(data){
        if(data == "OK"){
            $scope.wallPosts = data;
        }
    });

#Template
<p ng-repeat="post in wallPosts">{{ post.jsonKey }}</p>
#控制器
var newWallPost=$scope.newWallPost;
$http.post(“/backend/newWallPost”,
{
newWallPost:newWallPost
}).成功(功能(数据){
如果(数据==“正常”){
$scope.wallPosts=数据;
}
});
#模板

{{post.jsonKey}


使用
ng repeat
和一组墙柱将起作用。为什么需要指令?使用
ng repeat
和一组墙柱就可以了。为什么需要指令?您假设它是jQuery方式是正确的!你的回答更有棱角。感谢当你觉得想/需要使用jQuery来完成某件事情时,在这里节省一些时间提问,或者加入#angularjsirc@freenode问问应该怎么做。几乎总是有一种更简单更有效的方法:)gl和快乐编码!您认为它是jQuery方式是正确的!你的回答更有棱角。感谢当你觉得想/需要使用jQuery来完成某件事情时,在这里节省一些时间提问,或者加入#angularjsirc@freenode问问应该怎么做。几乎总是有一种更简单更有效的方法:)gl和快乐编码!