Kaj*_*nus 5 angularjs angularjs-scope
我正在考虑尝试从HTML中的数据初始化(部分)AngularJS模型,而不是向服务器请求将数据作为JSON获取,或者直接在页面中嵌入JSON对象.
(服务器目前只使用HTML(而不是JSON)呈现数据,我现在想避免重写"太多"代码,而且HTML适用于搜索引擎.应用程序本身就是一个讨论系统.)
下面是我的HTML(简化)示例.其中嵌入的数据是帖子ID(123456),作者ID(789),作者姓名(Kitty霸主)和文本消息("Kittens Cats!Just kidding. ").
<div id="post-123456">
<div class="dw-p-hd">
By <span data-dw-u-id="789">Kitty overlord</span>
</div>
<div class="dw-p-bd">
<p>Kittens</p><p><strike>Cats! Just kidding.</strike></p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想构建一个AngularJS控制器,并初始化$scope为:
$scope = {
postId = 123456,
authorId = 789,
text = 'Kittens ....',
}
Run Code Online (Sandbox Code Playgroud)
也许我可以ng-init像这样使用:
<div id="post-123456"
ng-controller="CommentCtrl"
ng-init="{ postId =..., authorId =..., text =... }"> <--- look here
<div class="dw-p-hd">
By <span data-dw-u-id="789">Kitty overlord</span>
</div>
<div class="dw-p-bd">
<p>Kittens...</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
但后来我会发送两次数据:一次进入ng-init,一次进入HTML.我想我宁愿ng-init以某种方式跳过这个属性.
无论如何你认为这是一个好的方法吗?
或者它不可能/不好,我应该做别的事情呢?
有没有办法避免两次包含数据?(在html和in中都有ng-init)
似乎将所有这些数据存储在 json 中会更好,例如:
//...
posts: [
{ postId : 123456,
authorId : 789,
text : 'Kittens ....' },
{ postId : 123457,
authorId : 790,
text : 'Puppies....' }
]
//...
Run Code Online (Sandbox Code Playgroud)
然后用ng-repeat类似的方式填充它:
<div ng-repeat="post in posts" id="{{post.postId}}"
ng-controller="CommentCtrl" >
<div class="dw-p-hd">
By <span data-dw-u-id="{{post.authorId}}">Kitty overlord</span>
</div>
<div class="dw-p-bd">
<p>{{post.text}}</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我有类似的问题,可能对你有用:AngularJS - Getting data insert in dom
| 归档时间: |
|
| 查看次数: |
4798 次 |
| 最近记录: |