【问题标题】:AngularJS click directive doesn't trigger function w/ JadeAngularJS 点击指令不会触发带有 Jade 的功能
【发布时间】:2013-07-26 05:55:28
【问题描述】:

这大致基于MEAN Stack demo:Mongo、Express、AngularJS 和 NodeJS

我想像这样在我的 Jade 模板中向我的控制器添加一个 delete 方法

characters.jade

script
    function CharactersController($scope, $http, $window){
        $scope.charactersList = [];

        $scope.newCharacter = {};

        $scope.init = function(charactersList){
            $scope.charactersList = charactersList;
        }

        $scope.save = function(form){

        }

        $scope.delete = function(id){
            console.log('delete: '+id);
        }
    }
body
    h1  Characters
    div(ng-controller="CharactersController", ng-init="init( #{JSON.stringify(charactersList)} );") Create a new character:
        br
        form(name="charactersForm", ng-submit="save(charactersForm)")
            input(type="string", ng-model="newCharacter.firstName", name="firstName", placeholder="Firstname...")

            input(type="submit")
        hr
        div(ng-repeat="character in charactersList.characters")
            {{character.lastName}}, {{character.firstName}} - Quantity: {{character.quantity}} 
            button(ng-click="delete('{{character._id}}')") remove`

我相信我只是搞砸了ng-clickscope,因为delete(...) 函数即使在`ng-controller="CharactersController" div 中也没有触发?

【问题讨论】:

    标签: javascript node.js angularjs pug


    【解决方案1】:

    玉模板的最终输出是什么样子的?没有使用过jade,但ng-click 可能没有正确转换为html,因为它不是标准属性。 控制台中还有任何错误吗?我也会尝试ng-click="alert('the click handler works')" 来尝试隔离问题。

    【讨论】:

    • 所以这里是输出:<div ng-repeat="character in charactersList.characters" class="ng-scope ng-binding">Baucke, Jordan - Quantity: 2 <button ng-click="alert('hi');">remove</button></div> 在我看来是正确的,但是 JS alert 不会触发?
    • 您是否正确初始化了 anglar?例如:通过使用 检查angularjs.org 主页示例。
    猜你喜欢
    • 2013-04-15
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多