加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

理解AngularJS中的双向数据绑定

发布时间:2020-12-17 17:52:35 所属栏目:安全 来源:网络整理
导读:我是AngularJS的新手.很长一段时间我试图滥用它,就像我一直使用 Javascript或Mootools这样的Javascript-Frameworks.现在我明白它不再那样了……但是我遇到了一些大问题因为我总是用CMS生成我的HTML输出. 所以当它第一次出现时它是非常静态的……小例子: ul
我是AngularJS的新手.很长一段时间我试图滥用它,就像我一直使用 Javascript或Mootools这样的Javascript-Frameworks.现在我明白它不再那样了……但是我遇到了一些大问题因为我总是用CMS生成我的HTML输出.

所以当它第一次出现时它是非常静态的……小例子:

<ul>
 <li>foo <span>delete</span></li>
 <li>bar <span>delete</span></li>
 <li>blub <span>delete</span></li>
</ul>

现在我想,双向数据绑定意味着我可以在角度范围和控制器的帮助下生成视图,但也可以通过视图生成模型.

我可能在那里感到困惑……所以这是我的问题.有没有办法从CMS的静态HTML输出启动模型?

我试过这样的事……

<ul ng-controller="Ctrl">
 <li ng-init="item[0].name=foo">{{item[0].name}} <span ng-click="remove(0)">delete</span></li>
 <li ng-init="item[1].name=bar">{{item[1].name}} <span ng-click="remove(1)">delete</span></li>
 <li ng-init="item[2].name=blub">{{item[2].name}} <span ng-click="remove(2)">delete</span></li>
</ul>

在我的控制器中,我写了一个删除功能.但是当它删除时,它只删除了名称…… span按钮仍然存在

虽然当我将我的数据定义为javascript-array并通过Angular使用ng-repeat进行整个输出时它确实有效…像这样:

<ul ng-repeat="it in item">
 <li>{{it.name}} <span ng-click="remove($index)">delete</span></li>
</ul>

我希望我在这里说明一点,每个人都有我的困难和问题?任何人都可以告诉我,我在那里尝试的是否可能?

解决方法

这是人们已经适应Angular和其他类似框架的常见问题.

您不再需要服务器为您呈现HTML.您需要做的就是设置模板,并将适当的数据加载到范围中.

<ul ng-controller="Ctrl" ng-init="getMyItems()">
 <li ng-repeat="item in items">{{item.name}} <a ng-click="remove($index)">delete</a></li>
</ul>

在你的控制器中,你会做这样的事情

app.controller('Ctrl',function($scope,$http) {
   $scope.items = [];
   $scope.getMyItems = function(){
       $http.get('/my/json/stuff/url').success(function(data) {
           $scope.items = data;
           $scope.$apply();
       });
   };
});

现在我知道你可能在考虑“但是我不想单独请求获取我的JSON.这很好(可能不相关,但很好)……你需要做的就是把它放到一个全局变量中并使用$window检索它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读