Angularjs 角度绑定/范围问题

Angularjs 角度绑定/范围问题,angularjs,Angularjs,也许这是一个角度错误,但我觉得我对这里的工作方式有一个基本的误解,我的谷歌fu让我失望 我有一个非常简单的DOM,它作为局部视图动态加载。页面的其余部分不使用角度。在DOM更高的一个div上有一个ng应用程序 <div class="partialContainer bootstrap" id="dataEntryTab" ng-controller="mainController"> <div ng-model="$scope"> <p&g

也许这是一个角度错误,但我觉得我对这里的工作方式有一个基本的误解,我的谷歌fu让我失望

我有一个非常简单的DOM,它作为局部视图动态加载。页面的其余部分不使用角度。在DOM更高的一个div上有一个ng应用程序

<div class="partialContainer bootstrap" id="dataEntryTab" ng-controller="mainController">
    <div ng-model="$scope">
        <p>Target types: {{targetTypes}}</p>
        <ul ng-repeat="tt in targetTypes">
            <li>
                <h2>{{tt.DisplayName}} Targets</h2>
                <ul class="targetList" ng-repeat="t in targetsOfType(tt.Name)">
                    <li>
                        <span>{{t.Name}}</span><span>{{t.EnteredData.length}} trials</span>
                        <span ng-repeat="d in enteredData">
                            <span>{{d}}</span>
                        </span>
                    </li>
                </ul>
            </li>
        </ul>
    </div>
    <button ng-click="addData()">Enter Data</button>
</div>
我遇到的问题是,如果这一行没有ng模型:
下面的ng repeat将渲染为空。我假设问题要么是它的绑定不正确,要么是范围错误。但我太新了,不知道该用什么方法来修复它

我知道但不知道的一件事是,DOM和控制器之间的角度如何匹配作用域

作为参考,这是控制器代码(在typescript中):


您使用的jQuery版本是什么
live()
多年来一直被弃用。jQuery代码在哪里?我们使用的是jQuery 1.11.1。这个live()代码段位于包含我的angular代码的js/ts文件的末尾,它没有抛出错误吗?在1.9版本中被完全删除。它不会抛出错误,因为我们正在填充它以使用“开”。好吧…听起来很难听,但如果它能工作
$compile
在选择器上不起作用,将元素或html传递给它。。。在您的情况下,需要是element您使用的jQuery版本是什么
live()
多年来一直被弃用。jQuery代码在哪里?我们使用的是jQuery 1.11.1。这个live()代码段位于包含我的angular代码的js/ts文件的末尾,它没有抛出错误吗?在1.9版本中被完全删除。它不会抛出错误,因为我们正在填充它以使用“开”。好吧…听起来很难听,但如果它能工作
$compile
在选择器上不起作用,将元素或html传递给它。。。在您的情况下,需要使用元素
$('#dataEntryTab').live('tabLoad', () => {
    var invoker = $compile => {
        var scope = angular.element('#dataEntryTab').scope();
        $compile('#dataEntryTab')(scope);
    }
    invoker.$inject = ['$compile'];
    angular.element('#content-wrapper-1').injector().invoke(invoker);
});
var mainController = ($scope: IMainScope, targetTypeFilter: ITargetTypeFilterFunc, ngDialog: IDialog, dataEntry: IDataEntryService) => {
    $scope.targetsOfType = (targetType: string) => {
        return targetTypeFilter(dataEntry.enteredData, targetType);
    };

    $scope.addData = () => {
        ngDialog.open({
            template: 'addDataDialog',
            scope: $scope
        });
    };
    $scope.targetTypes = [
        new TargetType('DTT', 1, 'DTT'),
        new TargetType('TaskAnalysis', 3, 'Task Analysis'),
        new TargetType('Duration', 4, 'Duration'),
        new TargetType('Frequency', 5, 'Frequency'),
        new TargetType('Toileting', 6, 'Toileting'),
        new TargetType('Fluency', 7, 'Fluency'),
        new TargetType('Quantity', 8, 'Quantity'),
        new TargetType('Anecdotal', 9, 'Anecdotal'),
        new TargetType('GroupedFrequency', 14, 'Grouped Frequency'),
    ];

};