我正在使用meteor ui twitter账号。我试图做的是基本上在点击按钮清除时从Meteor集合中删除所有用户。这是我的代码:
HTML文件:
<div ng-controller="TweetsCtrl">
<meteor-include src="loginButtons"></meteor-include>
<ul>
<br>
<div ng-repeat="t in twitterAccs">
<img src = "{{t.services.twitter.profile_image_url_https}}">
<br>
<i>@{{t.services.twitter.screenName}}</i>
<br>
<br>
</div>
<button ng-click="clearUsers()">Clear</button>
</ul>
JS文件:
if (Meteor.isClient) {
angular.module('twitter-example',['angular-meteor']);
angular.module('twitter-example').controller('TweetsCtrl',['$scope','$meteor',function($scope,$meteor) {
$scope.twitterAccs = $meteor.collection(Meteor.users);
$scope.clearUsers = function () {
$scope.twitterAccs = $meteor.collection(Meteor.users.remove({}) );
console.log("hello");
}
}]);
}
答案 0 :(得分:1)
我认为这仅用于开发目的吗?允许您网站的访问者删除所有用户会很糟糕。事实上你有一个很好的按钮设置它让我担心它是一个功能!
最简单的方法是连接一个像
这样的Meteor.methodif (Meteor.isServer) {
Meteor.methods({
clearUsers: function() {
Meteor.users.remove({});
}
});
}
然后在你的console.log(&#34; hello&#34;)所在的地方做一个Meteor.call(&#39; clearUsers&#39;)。您也可以通过浏览器控制台运行呼叫,我有时会进行此设置,而不是通过终端直接转到数据库。
您也可以通过允许拒绝规则来执行此操作(请参阅:http://docs.meteor.com/#/full/allow),默认设置规则,以便用户只能编辑自己的配置文件对象。
最后你可以包括meteor包不安全(我假设你必须已经删除它),这将允许任何人编辑任何集合,假设你还没有设置上面提到的任何允许,拒绝规则。